import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class ArrayTest {
public static void main(String[] args) {
// 在 Java 中创建一个数组的四种方法
// 以[1, 2, 3]为例
// 方法 1
int[] a = {1, 2, 3};
System.out.println("a: " + Arrays.toString(a));
// 方法 2
int[] b = new int[]{1, 2, 3};
System.out.println("b: " + Arrays.toString(b));
// 方法 3
int[] c = new int[3];
for (int i = 0; i < a.length; i++) {
c[i] = i + 1;
}
System.out.println("c: " + Arrays.toString(c));
// 方法 4
ArrayList<Integer> arr = new ArrayList<>();
for (int i = 0; i < 3; i++) {
arr.add(i + 1);
}
// [1, 2, 3]
System.out.println("arr: " + arr.toString());
// 添加元素
// 时间复杂度:O(1)
arr.add(99);
// [1, 2, 3, 99]
System.out.println("arr: " + arr.toString());
// 插入元素
// 时间复杂度:O(N)
arr.add(3, 88);
// [1, 2, 3, 88, 99]
System.out.println("arr: " + arr.toString());
// 访问元素
// 时间复杂度:O(1)
int c1 = c[1];
int arr1 = arr.get(1);
// 1
System.out.println("c1: " + c1);
System.out.println("arr1: " + arr1);
// 更新元素
// 时间复杂度:O(1)
c[1] = 11;
arr.set(1, 11);
// 1 -> 11
System.out.println("c1: " + c1);
System.out.println("arr1: " + arr.get(1));
// 移除元素
// 时间复杂度:O(N)
arr.remove(3);
System.out.println("arr1: " + arr.get(1));
// 数组的长度
// 时间复杂度:O(N)
int cSize = c.length;
int arrSize = arr.size();
System.out.println("c length: " + cSize);
System.out.println("arr length: " + arrSize);
// 遍历一个数组
// 遍历 c
for (int i = 0; i < c.length; i++) {
int current = c[i];
System.out.println("c at index " + i + ": " + current);
}
// 遍历 arr
for (int i = 0; i < arr.size(); i++) {
int current = arr.get(i);
System.out.println("arr at index " + i + ": " + current);
}
// 查找一个元素
// 在 c 中查找一个元素
for (int i = 0; i < c.length; i++) {
if (c[i] == 99) {
System.out.println("We found 99 in c!");
}
}
// 在 arr 中查找一个元素
boolean is99 = arr.contains(99);
System.out.println("Are we found 99 in arr? " + is99);
// 使用内部库对数组排序
c = new int[]{2, 3, 1};
arr = new ArrayList<>();
arr.add(2);
arr.add(3);
arr.add(1);
// [2, 3, 1]
System.out.println("c: " + Arrays.toString(c));
System.out.println("arr: " + arr.toString());
// 从小到大
// 时间复杂度:O(NlogN)
Arrays.sort(c);
// [1, 2, 3]
System.out.println("c: " + Arrays.toString(c));
Collections.sort(arr);
System.out.println("arr: " + arr);
// 从小到大
// 时间复杂度:O(NlogN)
// For c, you can read an array in reverse
// Arrays.sort(T[], Collections.reverseOrder());
// For arr
Collections.sort(arr, Collections.reverseOrder());
// [3, 2, 1]
System.out.println("arr: " + arr);
}
}
Java中数组操作
于 2022-03-13 21:59:04 首次发布