A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

数组操作工具类, 带测试, 自己可以改,

将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("*********************************************");
        }

}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马