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


//另一个文件   //实际上直接编译主函数就可以,其他的有关文件就会被自动编译
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(), 它并没有访问成员变量,如果我们还是要创建对象的话,那么就是在浪费空间.


优化后的代码如下:
*/


//一个文件
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;
}
}


//另一个文件   
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);
}
}




/**************************************************************************/


//文档注释


/**
建立一个用于操作数组的工具类,其中包含着常见的对数组操作的函数,如: 最值,排序等.
@author 纸人
@version v1.0
*/


//ArrayTool.java文件
public class ArrayTool //加上public后,文件名和类名要一致
{
private ArrayTool(){};
//该类中的方法都是静态的,所以该类是不需要创建对象的.
//为了保证不让其他人创建对象,可以讲构造函数私有化.


/**
获取整型数组的最大值
@param arr 接收一个元素为int类型的数组
@return 该数组的最大的元素值
*/
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];
}


/**
对数组进行选择排序
@param arr 接收一个元素为int类型的数组
*/
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);
}
}
}
}

/**
用于给数组进行元素的位置置换
@param arr 接收一个元素为int类型的数组
@param a
@param b
*/
private static void swap(int [] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = arr[a];
}


/**
获取指定的元素在指定数组中的索引.
@param arr 接收一个元素为int类型的数组
@param key 要找的元素.
@return 返回来元素第一次出现的位置, 如果不存在返回-1.
*/
public static int getIndex(int[] arr,int key)
{
for (int x=0; x<arr.length ; x++ )
{
if (arr[x]==key)
{
return x;
}
}
return -1;
}


/**
将int数组转成字符串. 格式为: [e1,e2,e3,....]
@param arr 接收一个元素为int类型的数组
@return 返回该数组的字符串表现形式.
*/
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;
}
}


//另一个文件   
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);
}
}


//然后生成文档注释
/*
用法:  javadoc [选项] [软件包] [源文件] [@file]
  javadoc [参数可以是多个] [存放的路径] [源文件] [描述]
*/
// 例: javadoc -d myhelp -author -version ArrayTool.java











posted @ 2014-12-12 21:08  Y_zr  阅读(203)  评论(0编辑  收藏  举报