数组及Arrays类
一、数组和集合比较优缺点:
1.数组效率最高,元素访问最快
2.数组长度是固定的,在其生命周期中均不能改变,集合能够自动扩容
3.数组在创建时就确定了能够存储的数据类型,在程序编译时就能显示异常。java1.5后集合在使用泛型时也能够在确定存储的数据类型并在编译时显示异常。数组可以存储基本类型,集合不能,但java1.5后集合可以存储基本类型包装类。
所以综上,数组除了效率高且节约资源外,和集合相比还有长度限制不能自动扩容的缺点,随着硬件发展内存容量越来越大,集合使用的也越发频繁,数组的使用也越来越少
二、数组初始化
String[] arr = new String[5];
新生成的数组对象,其中所有的引用被自动初始化为null,数值型自动初始化为0
三、多维数组
四、Arrays类
1.Arrays.fill(a,b) 此方法需要传两个参数,a为选定的数组,b为符合数组类型的元素。该方法是将a数组的全部元素使用b代替。
2.Arrays.toString() 打印数组内容
3.Arrays.deepToString() 打印多维数组内容
4.System.arrayCopy(a,b,c,d,e) 复制数组元素到另一个数组。a表示被复制的数组,b表示从a数组什么位置开始,c表示需要复制的数组,d表示b数组从什么位置开始,e表示复制的数组元素的长度。 复制对象数组时其实只是复制了对象的引用,并没有将对象重新复制,属于浅复制
5.Arrays.equals(a,b) 比较两个数组的元素个数和对应位置的元素是否相等,同object.equals()只比较内容,不比较地址
6. int Arrays.binarySearch(a,r) 快速查找,a表示数组,b表示要查找的元素,返回值为元素在数组的位置。必须要在数组排序后才能使用
7. Arrays.sort() 数组排序,数组元素为对象时要实现comparable接口
最后:我们肯定还会使用数组,并且你在读代码的时候还会看到它,但集合几乎总是更好的选择