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

 

posted @ 2017-09-01 16:01  vector121  阅读(101)  评论(0编辑  收藏  举报