简介
Java中有大量其他方式可以持有对象,但是在很多时候我们还是会去使用数组。
数组和其他种类的容器之间的区别有三个方面:
- 效率
- 类型
- 保存对象
在Java中,数组是一种效率最高的存储和随机访问对象引用序列的方式。数组就是一个简单的线性序列,这使得元素访问非常快速。但是代价是数组对象的大小被固定,并在其生命周期内是不可改变的。
数组的使用
无论哪种类型的数组,数组标识符其实只是一个引用,指向在堆中创建的一个真实对象,这个对象保存指向其他对象的引用。可以作为数组初始化语法的一部分隐式地创建此对象,或用new表达式显式地创建。只读成员length是数组对象的一部分,表示此数组对象可以存储多少元素,[]语法是访问数组对象的唯一方式。
public static void main(String[] args) {
String [] strs1 = {"Hello","World","!"};//隐式创建
String [] strs2 = new String[5];//new
System.out.println(strs1.length);//3
System.out.println(strs2.length);//5
System.out.println(strs1[1]);//World
}
多维数组
创建多维数组很方便。对于基本类型的多维数组,可以通过使用花括号将每个向量分隔开。
下面是二位数组的创建,当然三维思维这是这样去创建,
public static void main(String[] args) {
int [][] matrix = {
{1,2,3},
{4,5,6}
};
System.out.println(Arrays.deepToString(matrix));//[[1, 2, 3], [4, 5, 6]]
}
Arrays实用功能
方法 | 用途 |
---|---|
Arrays.fill() | 填充数组 |
System.arraycopy | 数组复制(快于for循环) |
Arrays.equals() | 数组比较 |
Arrays.compareTo() | 数组元素比较 |
Arrays.sort() | 数组排序(基本类型使用快速排序,引用类型使用稳定归并排序) |
Arrays.binarySearch() | 快速查询(需要数组已排序) |