黑马程序员技术交流社区

标题: 通过索引获取最大值 [打印本页]

作者: 刘辰阳    时间: 2015-10-30 14:03
标题: 通过索引获取最大值

/**
* 通过索引获取最大值
*
*
*/
public class Test1 {
        public static void main(String[] args) {
                int[] arr = {11,22,33,44,55,66};
                int max = getMax(arr);
                System.out.println(max);
                System.out.println("=======================");
                int max2 = getMaxByIndex(arr);
                System.out.println(max2);
               
                System.out.println("----------------------");
                int max3 = getMax(arr, true);
                System.out.println(max3);
                System.out.println("**************************");
                int max4 = getMax(arr,false);
                System.out.println(max4);
        }
        //通过假定数组中的第一个元素是最大值,然后不断的进行判断,最终获取对大值
        public static int getMax(int[] arr){
                int max = arr[0];//假设数组的第一个元素为最大值
                for(int i=0;i<arr.length;i++) {
                        if(max<arr[i]) {
                                max = arr[i];
                        }
                }
                return max;
        }
        /**
         * 此方法可以求出数组对应的最大值或者最小值
         * @param arr
         * @param flag :true:表示求最大值,false:表示求最小值
         * @return
         */
        public static int getMax(int[] arr,boolean flag){
                int max = arr[0];//假设数组的第一个元素为最值
                for(int i=0;i<arr.length;i++) {
                        if(flag) {
                                if(max<arr[i]) {
                                        max = arr[i];
                                }                               
                        } else {
                                if(max>arr[i]) {
                                        max = arr[i];
                                }
                        }
                }
                return max;
        }
       
        //通过获取最大值的角标,最终返回该角标对应的数值
        public static int getMaxByIndex(int[] arr){
                int max = 0;//假设数组的角标为0的元素是最大的
                for(int i=0;i<arr.length;i++) {
                        if(arr[max]<arr[i]) {
                                max = i; //max中存储的是当前最大值所对应的角标
                        }
                }
                return arr[max];
        }
       
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2