- 数组的基本知识
1)数组是相同类型的元素的集合
2)数组中可以存储基本类型,也可以存储引用类型(对象)
Int[] a = new int[4];声明整型数组a[]能装4个数,默认值为0,0,0,0;
3)数组的定义:
Int[] arr = new int[4];
4)数组的初始化:
Int[] arr = new int[3];//0,0,0;
Int[] arr = (1,4,7);
Int[] arr = new int;
5)数组的访问:
5.1)通过数组名.length来获取数组的长度
Int arr = new int[3];
System.out.println(arr.length);
5.2) 通过下标或索引来访问数组中的元素;
下标从0开始最大到arr.length-1;
Arr[0]是数组第一个元素;
如果数组长度只有3,而你给数组第四个元素赋值,会出现数组下标越界异常;
6)数组的遍历:通常使用for循环进行遍历
Int[] arr = new int [300]; //给每个元素赋值100
For(int I = 0;i<arr.length;i++){ //不能取等号
Arr[i] = 100; //代表arr中的每一个元素
}
-
数组的优势
如果大家学过容器和集合,就应该会嫌弃数组这种只能固定大小的数据结构,但是数组有它自己的优势。相对于其他的种类的容器,数组的效率是最高的,没有之一。或许学习中或者刚刚接触Java的同学们不懂得效率的重要,因为现在的计算机运算速度足够快,所以平时不能看出效率的差距。当你接触了大数据软件,就知道优化算法,提高程序效率是多么重要的事情。
另外,数组的定长也有用处,那就是在建立定长矩阵的时候,刚好排上用场。例如,我要建立一个33的矩阵,就可以用33的二维数组表示。 -
Java为数组准备的方法
在java.util 类库中,可以找到Arrays类,它有一套哦用于数组的static实用方法,其中有6个基本方法:
(1)equals()用于比较两个数组是否相等。(deepEquals()用于多维数组)
(2)fill() 可以使用单一的数值或对象填充整个数组或者其中一部分
(3)sort()用于数组排序
(4)binarySearch()用于在已经排序的数组中查找元素。
(5)toString()产生数组的String表示
(6)hashCode()产生数组的散列码。
所有的这些方法对各种基本类型和Object类而重载过。
此外,Arrays.asList()接收任意的序列或数组作为参数,并将其转化为集合(list)
还有一个方法非常好用但是不属于Arrays类。那就是数组的复制System.arraycopy(),用它复制数组要比for循环复制要快的多。值得一提的是这种复制也是一种浅复制,也就是说,他只是复制了数组中的应用,并没有实现对象的复制。据我经历,我从未见过任何可以实现深复制的方法。