数组操作工具类, 带测试, 自己可以改,
将main方法去掉,在类名前面加个public 修饰. 哦了.
技术分...技术分....有没有.....
/**
ArrayTools 类是一个数组操作工具类,包含数组的各种操作(排序除外)):
遍历一维数组
获取数组的最值
对数组进行反转
查找指定元素第一次在数组中出现的索引
@author Anonymous
@version 1.0
*/
class ArrayTools
{
/**
类方法全部静态,不需要对象,因此不想让别得成员建立我的对象,所以私有构造器
*/
//私有构造器,防止外界创建对象
private ArrayTools(){}
/**
ergodicArray方法:实现遍历数组,将数组打印到控制台,调用方法传递数组
@param arr
*/
//第一个功能:定义一个遍历数组的方法
public static void ergodicArray(int[] arr){
/*
使用循环进行数组遍历,循环变量0,变到 数组的length-1
遍历当作数组的索引
*/
System.out.print("[");
for(int x = 0 ; x < arr.length ; x++){
//判断变量x是不是到达数组最大索引
if(x == arr.length-1){
//输出数组的元素
System.out.print(arr[x]);
}
else{
System.out.print(arr[x]+",");
}
}
System.out.println("]");
}
/**
getMax方法: 获取数组中的最大值
调用方法传递数组,返回数组中元素的最大值
@param arr
@return max
*/
//第二个功能: 定义一个获取一维数组最大值和最小值的方法
public static int getMax(int[] arr){
//定义变量,当作下标使用
int max = 0;
//遍历数组
for(int x = 1 ; x < arr.length ; x++){
//max下标上的元素,变量x下标上的元素,进行比较
if(arr[max] < arr[x]){
//max记录较大数的下标
max = x;
}
}
return arr[max];
}
/**
getMin方法: 获取数组中的最小值
调用方法传递数组,返回数组中元素的最小值
@param arr
@return min
*/
public static int getMin(int[] arr){
//定义变量,当作下标使用
int min = 0 ;
//遍历数组
for(int x = 1 ; x < arr.length ; x++){
//min下标上的元素,变量x下标上的元素,进行比较
if(arr[min] > arr[x]){
//min记录较小数的下标
min = x ;
}
}
return arr[min];
}
/**
reverseArray方法: 实现数组的元素反转功能
调用方法传递数组
@param arr
*/
//第三个功能:定义一个实现数组的反转的方法
public static void reverseArray(int[] arr){
//定义2个变量,保存数组最小,最大索引
// int min = 0 ,max = arr.length-1;
for( int min = 0 ,max = arr.length-1 ; min < max ; min++,max--){
//定义第三方变量,进行数组的位置交换 min索引和max索引
//保存数组min下标元素
int temp = arr[min];
//max下标元素赋值到min下标
arr[min] = arr[max];
//临时变量,赋值数组max下标
arr[max] = temp;
}
}
/**
searchKey方法: 实现在数组中查找元素的功能,获取指定元素第一次在数组中出现的索引
调用的时候,传递数组和查找的元素
@param arr
@param key
@return index
*/
//第四个功能: 定义一个数组元素查找功能 (查找指定元素第一次在数组中出现的索引)
//如果元素在数组中没有出现过,结果负数-1
public static int searchKey(int[] arr, int key){
//对数组进行遍历,用查找的元素key
//和数组中的每个元素,进行比较,如果相等,返回索引,结束程序
for(int x = 0 ; x < arr.length ; x++){
if(key == arr[x])
return x;
}
return -1;
}
public static void main(String[] args)
{
System.out.println("*********************************************");
//创建数组工具类对象实例
ArrayTools at = new ArrayTools();
int[] arr = {1,2,3,4,5,6,7,8,9,0};
System.out.print("遍历后数组为: ");
at.ergodicArray(arr);
System.out.println("*********************************************");
int max = at.getMax(arr);
System.out.println("该一维数组中最大的元素是: " + max);
System.out.println("*********************************************");
int min = at.getMin(arr);
System.out.println("该一维数组中最小的元素是: " + min);
System.out.println("*********************************************");
System.out.print("原一维数组反转后变成: ");
reverseArray(arr);
at.ergodicArray(arr);
System.out.println("*********************************************");
int key = at.searchKey(arr,8);
System.out.println("反转后的数组第一次出现元素8的索引是: " + key);
System.out.println("*********************************************");
//再对反转后的数组反转,回到原来的一维数组
System.out.println("原数组中第一次出现元素8的索引是: " + at.searchKey(arr,8));
System.out.println("*********************************************");
}
} |
|