NingG +

java中数组(Array)

基础类型的数组

基础类型:int,byte,char,double等;

关于数组,几点:

声明和初始化

int[] intArray1 = new int[10];
int[] intArray2 = {1,2,3,4};

操作

对一个数组,可以进行的操作有:

特别说明:这些操作大都已经作为基本的操作,封装在java.util.Arrays类中了。

复制

用到了System.arraycopy方法,示例代码如下:

int[] intArray1 = new int[10];
int[] intArray2 = {1,2,3,4};

System.arraycopy(intArray2, 0, intArray1, 0, 2);
System.out.println();

也可以使用java.util.Arrays类中copyOfRange方法:

int[] intArray2 = {1,2,3,4};
int[] intArray3 = Arrays.copyOfRange(intArray2, 0, 2);

备注Arrays.copyOfRange()实质调用的也是System.arraycopy()

输出

Arrays.toString可以直接输出整个数组的内容:

int[] intArray2 = {1,2,3,4,2};
System.out.println(Arrays.toString(intArray2));

排序

排序,调用Arrays.sort(),默认升序排列;本质是快排算法:

int[] intArray2 = {1,2,3,4,2};
Arrays.sort(intArray2);

查找

直接调用Arrays.binarySearch方法即可,但要求,调用此方法之前,必须对整个Array进行排序,即Arrays.sort()方法,否则,得到的结果可能有错;

清零

Arrays.fill(char[] charArray, char singleChar):将整个charArray中所有内容填充为singleChar,通常char:\0表示为空。

转换为List

List<T> Arrays.asList(T... a),将数组a转换为List;

疑问:如何将List转换为数组?List.toArray();

对象的数组

对象的数组,与基础类型的基本一致,包含几点:

数组链表

特别说明,数组链表,本质是链表,只不过其底层采用数组形式实现,即,数组链表对应:连续的存储空间;但,因为数组链表(ArrayList)与数组名称相似,下文将对数组链表进行简要分析。

(doing… ArrayList的创建、操作,特别是,底层实现机制)

参考来源

Top