Java 实现Arrays 数组工具类
Class Arrays
是 java 工具包自带的非常强大的数组工具类,今天手工实现了一部分功能,部分参考实现如下
public class MyArrays { //最大值 /** * 获取int数组最大值 * * @param arr:代遍历的数组 * @return 数组最大值 */ public int getMax(int[] arr) { int max = arr[0]; for (int i = 0; i < arr.length; i++) { if (max < arr[i]) { max = arr[i]; } } return max; } /** * 获取数组最小值 * * @param arr 代遍历数组 * @return 数组最小值 */ public int getMin(int[] arr) { int min = arr[0]; for (int i = 0; i < arr.length; i++) { if (min > arr[i]) { min = arr[i]; } } return min; } /** * 求数组元素和 * * @param arr 待遍历数组 * @return 数组元素和 */ public int getSUm(int[] arr) { int sum = arr[0]; for (int i = 0; i < arr.length; i++) { sum += arr[i]; } return sum; } /** * 求数组元素均值 * * @param arr 待遍历数组 * @return 数组均值 */ public int getAvg(int[] arr) { return getSUm(arr) / arr.length; } /** * 遍历数组 * * @param arr */ public void print(int[] arr) { System.out.print("["); for (int i = 0; i < arr.length; i++) { if (i == 0) { System.out.print(arr[i]); } else { System.out.print("," + +arr[i]); } } System.out.println("]"); } /** * 数组复制 * * @param arr * @return */ public int[] copy(int[] arr) { int[] newArr = new int[arr.length]; for (int i = 0; i < arr.length; i++) { newArr[i] = arr[i]; } return newArr; } /** * 数组反转 * * @param arr */ public void reverse(int[] arr) { for (int i = 0, j = arr.length - 1; i < j; i++, j--) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } /** * 数组排序 * * @param arr */ public void sort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { swap(arr, j, j + 1); } } } } /** * 自定义排序顺序 冒泡排序 * * @param arr * @param n */ public void sort(int[] arr, String method) { if ("asc".equals(method)) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { swap(arr, j, j + 1); } } } } else if ("desc".equals(method)) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] < arr[j + 1]) { swap(arr, j, j + 1); } } } } else { System.out.println("排序规则有误!"); } } /** * 数组元素交换 * * @param arr 数组 * @param i 待交换元素 i * @param j 待交换元素 j */ private void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } /** * 线性查找指定值 * * @param arr 数组 * @param value 查找值 * @return:-1 表示未找到,否则就返回索引值 */ public int linearSearch(int[] arr, int value) { for (int i = 0; i < arr.length; i++) { if (value == arr[i]) { return i; } } //代码执行到这里即为 数组中未查询到制定值 return -1; } }
测试类
public class MyArraysTest { public static void main(String[] args) { MyArrays myArrays = new MyArrays(); int[] arr = {1, 33, 88, 0, -1, 76}; System.out.println(myArrays.getMax(arr)); System.out.println(myArrays.getAvg(arr)); System.out.println(myArrays.linearSearch(arr, 8)); myArrays.sort(arr,"desc"); myArrays.print(arr); } }