013天
行百里者半九十,想要在一个行业里成为顶尖人才,一定满足一万小时定律,要想学好JAVA,需要持之以恒不断地努力,每天都要勤思考+善于询问+解决问题!
今天的主要收获
JAVA中逗号与分号的区别,理解本质很重要,思考问题要深刻
打印杨辉三角的方法
用对象的思想封装员工数据
自定义排序
老师布置的作业题
获取数组最大值和最小值操作:利用Java的Math类的random()方法,编写函数得到0到n之间的随机数,n是参数。并找出产生50个这样的随机数中最大的、最小的数,并统计其中>=60的有多少个。提示:使用 int num=(int)(n*Math.random());获取随机数
合并数组操作:现有如下一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} 要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr [] ={1,3,4,5,6,6,5,4,7,6,7,5}
思路: 确定出不为0的个数,这样可以开辟新数组;从旧的数组之中,取出内容,并将其赋给新开辟的数组。
多维数组
二维数组的初始化有几种方式分别是什么?
1. 静态初始化
除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。
2.动态初始化
数组定义与为数组元素分配空间并赋值的操作分开进行。
3.数组的默认初始化
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
二维数组的遍历有几种方式?
三种方式:
第一种方法:双重for循环
第二种方法:增强for循环foreach
第三种方法:for循环的混搭
Object数组存储表格数据
数组都可以存储哪些类型的数据?
基本数据类型和引用类型的数据
请你画出使用对象数组存储数据的内存结构图?
数组的拷贝
数组的拷贝分为哪两种类型的拷贝?
内存地址拷贝和存储数据拷贝
System类中数组拷贝的方法是什么?参数均是什么含义?
System.arraycopy(src, srcPos, dest, destPos, length);
src是被拷贝的数组名
srcPos是被拷贝数组的开始位置
dest是拷贝数组的数组名
destPos是拷贝数组的开始位置
length是拷贝的长度
java.util.Arrays工具类的使用
Arrays工具类在API中的说明是什么?
该类包含用于操作数组的各种方法(如排序和搜索)。 该类还包含一个静态工厂,可以将数组视为列表。如果指定的数组引用为空,则该类中的方法都抛出一个NullPointerException,除非另有说明。
Arrays类中的常用方法有哪些?
Arrays.fill()
Arrays.fill(Object[] array, Object obj)
用指定元素填充整个数组(会替换掉数组中原来的元素)
Arrays.sort()
Arrays.sort(Object[] array)
对数组元素进行排序(串行排序,升序排列)
Arrays.binarySearch()
注意:在调用该方法之前,必须先调用sort()方法进行排序,如果数组没有排序,
那么结果是不确定的,此外如果数组中包含多个指定元素,则无法保证将找到哪个元素
Arrays.copyOf()
Arrays.copyOf(T[] original, int newLength)
拷贝数组,其内部调用了 System.arraycopy() 方法,从下标0开始,如果超过原数组长度,会用null进行填充
Arrays.equals(Object[] array1, Object[] array2)
判断两个数组是否相等,实际上比较的是两个数组的哈希值,即 Arrays.hashCode(data1) == Arrays.hashCode(data2)
冒泡排序的基础算法
冒泡排序的原理是什么?
算法重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,这样越大的元素会经由交换慢慢“浮”到数列的顶端。
冒泡排序的外循环条件是什么?内循环条件是什么?
外层循环条件是数组的长度,内层的循环条件是数组的长度减去1再减去外层循环中i的值.