定义
数组是一种数据结构,可以存储多个相同类型的元素;在Java中,数组是一个对象,它可以存储基本数据类型和对象类型。
数组操作
创建数组
使用new 关键字创建一个数组对象。
//第一种声明,赋值和分配空间分开
int[] array;
//为数组开辟三个空间
array = new int[3];
//为数组赋值
array[0] = 1;
array[1] = 2;
array[2] = 3;
//第二种方式:声明和分配空间同时,然后赋值
int[] array1 = new int[3];
array1[0] = 1;
array1[1] = 2;
array1[2] = 3;
// 第三种方式:声明,分配空间,赋值一同进行
int[] array2 = new int[]{1,2,3};
int[] array3 = {1,2,3};
访问或遍历数组
使用索引访问数组中元素
//for i
for ( int i = 0; i < array.length; i++){
System.out.println(array[i]);
}
// foreach
for (int i: array
) {
System.out.println(i);
}
复制或拓展数组
Array.arraycopy()是将数组拓展的方法。System.arraycopy()方法或Array.copyOf()方法可以将一个数组复制到另一个数组中。
格式:
System.arraycopy(要复制的源数组, 从源数组复制的起始位置,复制到的目标数组, 复制到目标数组中的起始位置, 要复制的元素个数);
拓展后的数组=Array.copyOf(原数组,拓展后的长度)
// 复制
int[] array4 = new int [3];
System.arraycopy(array,0,array4,0,3);
System.out.println(Arrays.toString(array4));
// 拓展
int[] array5 = Arrays.copyOf(array, array.length + 1);
array5[3] =4;
System.out.println(Arrays.toString(array5));
排序数组
使用Arrays.sort()方法对数组进行排序
protected static void sortArray(){
int[] array7 = new int[] {0,4,2,2,1,1,33,34,5};
Arrays.sort(array7);
System.out.println(Arrays.toString(array7));
}
搜索数组
使用Arrays.binarySearch()方法在一个已排序的数组实现有序数组的二分法查找
int[] array7 = new int[] {0,4,2,2,1,1,33,34,5};
Arrays.sort(array7);
int index = Arrays.binarySearch(array7, 0);
System.out.println(index);
//找不到时返回负数。
index = Arrays.binarySearch(array7, 100);
System.out.println(index);
//有多个相同值不一定返回哪个。
index = Arrays.binarySearch(array7, 1);
System.out.println(index);
数组常见用法
Arrays类位于java.util包中 import java.util.Arrays;
int[] array1 = {10, 20, 16, 19, 5};
int[] array2 = {10, 20, 16, 19, 5};
//boolean equals(array1, array2)比较两个数组是否相等
System.out.println(Arrays.equals(array1, array2));
//打印true
//String toString(array)将数组转换成字符串显示值
System.out.println(Arrays.toString(array1));
//打印[10, 20, 16, 19, 5]
//void fill(array, val)将数组的所有值填充为val Arrays.fill(array2, 20); System.out.println(Arrays.toString(array2));
//打印[20, 20, 20, 20, 20]