zoukankan      html  css  js  c++  java
  • 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,谢谢关注。
  • 相关阅读:
    深度拾遗(06)
    非平衡数据处理
    深度拾遗(05)
    深度拾遗(00)
    深度拾遗(04)
    深度拾遗(03)
    深度拾遗(02)
    js继承方式
    js带缩略图的图片切换效果
    获取SQL Server数据库中的表和字段描述
  • 原文地址:https://www.cnblogs.com/vector121/p/7463659.html
Copyright © 2011-2022 走看看