Java学习个人备忘录之数组工具类

时间:2023-03-08 20:30:44

下面主要讲解一个针对数组操作的工具类。

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);
}
}