Java学习个人备忘录之数组工具类
下面主要讲解一个针对数组操作的工具类。
a.java -- 工具类文件
//按理来说要先编译本文件, 然后再编译主函数 class ArrayTool { /* 获取整型数组的最大值 */ public int getMax(int[] arr) { int maxIndex = 0; for (int x=1; x<arr.length ; x++ ) { if (arr[x]>arr[maxIndex]) { maxIndex = x; } } return arr[maxIndex]; } /* 选择排序 */ public void selectSort(int[] arr) { for (int x=0; x<arr.length-1 ; x++ ) { for (int y=x+1; y<arr.length ; y++ ) { if (arr[x]>arr[y]) { swap(arr,x,y); } } } } //交换两个单元的值 private void swap(int [] arr,int a,int b) { int temp = arr[a]; arr[a] = arr[b]; arr[b] = arr[a]; } /* 根据该单元的值,找到该单元的键 */ public int getIndex(int[] arr,int key) { for (int x=0; x<arr.length ; x++ ) { if (arr[x]==key) { return x; } } return -1; } /* 将数组转成字符串 */ public String arrayToString(int[] arr) { String str = "["; for (int x=0; x<arr.length ; x++ ) { if (x != arr.length-1) str = str + arr[x] + ", "; else str = str + arr[x] + "]"; } return str; } }
b.java -- 主函数
//实际上直接编译主函数就可以,其他的有关文件就会被自动编译 class ArrayToolDemo { public static void main(String[] args) { int[] arr = {4,8,2,9,7,6}; ArrayTool tool = new ArrayTool(); int max = tool.getMax(arr); System.out.println("max="+max); int index = tool.getIndex(arr,10); System.out.println("index="+index); } }
工具类中的静态的使用
在类中没有访问到成员变量的方法,我们将它变为静态类。
因为我们在调用方法时,需要先创建对象,如ArrayTool tool = new ArrayTool();
但是我们所要调用的方法 如 getMax(),它并没有访问成员变量,如果我们还是要创建对象的话,那么就是在浪费空间。
优化后的代码如下:
c.java
class ArrayTool { private ArrayTool(){}; //该类中的方法都是静态的,所以该类是不需要创建对象的. //为了保证不让其他人创建对象,可以将构造函数私有化. /* 获取整型数组的最大值 */ public static int getMax(int[] arr) { int maxIndex = 0; for (int x=1; x<arr.length ; x++ ) { if (arr[x]>arr[maxIndex]) { maxIndex = x; } } return arr[maxIndex]; } /* 选择排序 */ public static void selectSort(int[] arr) { for (int x=0; x<arr.length-1 ; x++ ) { for (int y=x+1; y<arr.length ; y++ ) { if (arr[x]>arr[y]) { swap(arr,x,y); } } } } //交换两个单元的值 private static void swap(int [] arr,int a,int b) { int temp = arr[a]; arr[a] = arr[b]; arr[b] = arr[a]; } /* 根据该单元的值,找到该单元的键 */ public static int getIndex(int[] arr,int key) { for (int x=0; x<arr.length ; x++ ) { if (arr[x]==key) { return x; } } return -1; } /* 将数组转成字符串 */ public static String arrayToString(int[] arr) { String str = "["; for (int x=0; x<arr.length ; x++ ) { if (x != arr.length-1) str = str + arr[x] + ", "; else str = str + arr[x] + "]"; } return str; } }
b.java
class ArrayToolDemo { public static void main(String[] args) { int[] arr = {4,8,2,9,7,6}; // ArrayTool tool = new ArrayTool(); // 因为是静态方法,所以省略了这一步 int max = ArrayTool.tool.getMax(arr); System.out.println("max="+max); int index = ArrayTool.tool.getIndex(arr,10); System.out.println("index="+index); } }
我是Vector,谢谢关注。