-
数组是用来存储一组相同数据类型数据的数据结构。
-
数组是一种引用类型。
-
数组的元素可以是简单数据类型数据也可以是引用类型的数据。
/*数组的两种定义方式*/
int[] arr2;
float[] arr1;
int arr3[]; //不建议
float arr4[];
-
在数组定义中,不能指定数组的长度,而需要在数组的创建阶段来指定。
正确:int[] a;
错误:int[20] b
-
通过new操作符来创建数组对象,指定数组的大小,给数组元素的存储分配空间。
int [] a = new int[20];
float[] b = new float[10];
String[] c = new String[5];
-
数组的初始化
/*静态初始化*/
int[] a = {1,3,5,7,9,11};
String[] s = {
new String(“abc”),
new String(“123”),
new String(“xyz”)
};
/*动态初始化*/
int[] a = new int[10];
for(int i = 0; i < 10; i++){
a[i] = 2 * i + 1;
}
-
数组的遍历
/*使用for循环遍历数组*/
int[] a = {1,3,5,7,9,11};
for(int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
/*使用foreach循环遍历数组*/
int[] a = {1,3,5,7,9,11};
for (int i : a) {
System.out.println(i); //输出1,3,5,7,9
}
排序
-
冒泡排序
冒泡排序是稳定的排序算法
/**
* 对数组进行冒泡排序
*/
public void MaoPaoSort_1(int[] arr) {
for (int i = 0; i < arr.length; i ++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
arr[j] = arr[j] + arr[j + 1];
arr[j + 1] = arr[j] - arr[j + 1];
arr[j] = arr[j] - arr[j + 1];
}
}
}
for (int i : arr) {
System.out.print(i + " ");
}
}
-
快速排序
-
Arrays.sort()
(快速排序)
数组拷贝
-
System.arraycopy(src, srcPos, dest, destPos, length)
将src数组里从索引为srcPos的元素开始, 复制到数组dest里的索引为destPos的位置, 复制的元素个数为length个。
int[] array = {1,3,5,7,9};
int[] array2 = new int[array.length];
/*将array数组里从索引为1的元素开始, 复制到数组array2里的索引为1的位置, 复制的元素个数为3个。 */
System.arraycopy(array, 1, array2, 1, 3); //复制后array2为 0,3,5,7,0
数组扩充
int[] arr = {1,2,3,4,5,6};
int[] temp = new int[arr.length + 4];
System.arraycopy(arr, 0, temp, 0, arr.length);
arr = temp;
for (int i : temp) {
System.out.print(i + " ");
}
ArrayList
ArrayList arr = new ArrayList(); //定义数组
arr.add(1001);
arr.add(1002);
arr.add(1003);
arr.add("Tunny");
arr.add("delect");
arr.add('男');
arr.add('女');
arr.set(3, 1004); //插入元素
arr.remove(5);
for (int i = 0; i < arr.size(); i++) {
System.out.print(arr.get(i) + " ");
}