- 需要导入外部的包 java.util.Arrays.copyOf(); 用于数组扩容
- 对于重复使用的如check、print类的功能以函数编写减少代码冗余
- 对数组的操作主要是2点:① 越界问题;②索引下标0~length-1问题;
- 使用独立的size作为数组的有效元素个数统计,更利于可读性;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
| import java.util.Arrays;
public class TestArrayAction { static int[] arr = new int[8]; static int size = 0; public static void main(String[] args) { int num = 11; System.out.println("source arr.length = " + arr.length); for (int i = 0; i < 12; i++) { System.out.println("insert >> arr[" + i + "] = " + num); insert(i, num); num += 11; } print(); System.out.println("delete(3), 44 >>"); delete(3); print(); System.out.println("replace(2, 99) >>"); replace(2, 99); print(); int result = search(2); System.out.println("search(2) >> " + result);
}
public static void insert (int pos, int val) { if (size == arr.length) { expandArr(); } if (!checkPos(pos)) { return; } for (int i = size; i > pos; i--) { arr[i] = arr[i-1]; } arr[pos] = val;
size++; }
public static void delete (int pos) { if (!checkPos(pos)) { return; } for (int i = pos; i < size-1; i++) { arr[i] = arr[i+1]; } size--; } public static void replace (int pos, int val) { if (!checkPos(pos)) { return; } arr[pos] = val; } public static int search (int pos) { if (!checkPos(pos)) { return -1; } return arr[pos]; } public static void expandArr () { arr = Arrays.copyOf(arr, arr.length*2); } public static boolean checkPos (int pos) { if (pos < 0 || pos > arr.length) { System.out.println("Error: 索引值越界,请核对传参!"); return false; } else { return true; } } public static void print () { for (int i = 0; i < size; i++) { System.out.print(arr[i] + " "); } System.out.println(); } }
|
输出:
source arr.length = 8
insert >> arr[0] = 11
insert >> arr[1] = 22
insert >> arr[2] = 33
insert >> arr[3] = 44
insert >> arr[4] = 55
insert >> arr[5] = 66
insert >> arr[6] = 77
insert >> arr[7] = 88
insert >> arr[8] = 99
insert >> arr[9] = 110
insert >> arr[10] = 121
insert >> arr[11] = 132
11 22 33 44 55 66 77 88 99 110 121 132
delete(3), 44 >>
11 22 33 55 66 77 88 99 110 121 132
replace(2, 99) >>
11 22 99 55 66 77 88 99 110 121 132
search(2) >> 99