javase day06方法与数组(二)

方法与数组(二)

数组获取最值

数组值传递

数组遍历

数组获取最值(获取数组中的最大值最小值)
分析:
1、定义一个数组,数组初始化的时候就要有值,所以采用静态初始化方式
2、从数组中任意找出一个元素进行比较(一般来说,我们取第一个),假设默认认为第一个就是最值
3、遍历其他元素与第一个元素进行比较,如果我找到了更大的元素,就把它给取代掉
如果说后面比较的元素小于被比较的元素,继续遍历后面元素
4、输出最值

public class ArrayDemo7 {
    public static void main(String[] args) {

        //定义一个数组,并对数组进行静态初始化
        int[] arr = {32, 54, 222, 1123, 54333, 52, 2, 1};

        //从数组中任意找出一个元素进行比较,默认它是最大值
        int max = arr[0]; //32 54 222 1123 54333
        //遍历其他元素与第一个元素进行比较,如果我找到了更大的元素,就把它给取代掉
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }

        //输出最值
//        System.out.println("数组中最大值为:" + max);

        //将获取最大值封装成一个方法
        int maxNum = getMaxNum(arr);
        System.out.println("数组中最大值为:" + maxNum);

        int minNum = getMinNum(arr);
        System.out.println("数组中最小值为:" + minNum);
    }


    //明确两个东西:1、返回值类型  int 2、参数列表 int类型的一维数组
    public static int getMaxNum(int[] a){
        //从数组中任意找出一个元素进行比较,默认它是最大值
        int max = a[0]; //32 54 222 1123 54333
        //遍历其他元素与第一个元素进行比较,如果我找到了更大的元素,就把它给取代掉
        for (int i = 0; i < a.length; i++) {
            if (a[i] > max) {
                max = a[i];
            }
        }

        return max;

    }


    public static int getMinNum(int[] a){
        //从数组中任意找出一个元素进行比较,默认它是最小值
        int min = a[0];
        //遍历其他元素与第一个元素进行比较,如果我找到了更小的元素,就把它给取代掉
        for (int i = 0; i < a.length; i++) {
            if (a[i] < min) {
                min = a[i];
            }
        }

        return min;
    }
}

数组值传递

定义两个数组,先定义一个数组,赋值,输出。
然后定义第二个数组的时候把第一个数组的地址赋值给第二个数组。
然后给第二个数组赋值,再次输出两个数组的名及元素。

public class ArrayDemo3 {
    public static void main(String[] args) {
        //定义一个元素类型是int类型,元素个数为3的一维数组
        int[] arr = new int[3];
        arr[0] = 11;
        arr[1] = 22;
        arr[2] = 33;
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);

        //然后定义第二个数组的时候把第一个数组的地址赋值给第二个数组。
        int[] arr2 = arr;
        arr2[0] =100;
        System.out.println("arr: "+arr);
        System.out.println("arr2: "+arr2);

        System.out.println("arr: "+arr[0]);
        System.out.println("arr: "+arr[1]);
        System.out.println("arr: "+arr[2]);

        System.out.println("arr2: "+arr2[0]);
        System.out.println("arr2: "+arr2[1]);
        System.out.println("arr2: "+arr2[2]);


    }
}

数组遍历
(依次输出数组中的每一个元素)

public class ArrayDemo6 {
    public static void main(String[] args) {
        //定义一个一维数组,元素类型为int类型,并且长度为3,用动态初始化
        int[] arr = new int[3];
        arr[0] = 11;
        arr[1] = 22;
        arr[2] = 33;
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);

        System.out.println("====用for循环改进===========");

        for(int i=0;i<3;i++){
            System.out.println(arr[i]);
        }

        //由于我们上面的数组元素个数可以一眼看出来是多少,所以我们在遍历的时候知道给多大范围
        //但是呢,我们的数组元素过多的时候,你还数的过来吗?数不过来
        //那怎么办呢?
        //数组在Java中提供了一个属性可以方便我们获取数组元素的个数(数组的长度)
        //这个属性叫做:length
        //使用格式:
        //      数组名.length


        int[] arr2 = {11,23,123,214,123,12,4,12312,1312,31,3,213,21,3,213,21,321,3,213,213,21,321,3,213,21,312,3,4,3,54,5,435,56,43,53,5,46,5,6,4,5,645,99};
        System.out.println("arr2数组的长度为:"+arr2.length);

        System.out.println("====用length属性获取数组长度加入到for循环遍历==========================");
        
//        for(int i=0;i<arr2.length;i++){
//            System.out.println(arr2[i]);
//        }

//        for(int i=0;i<arr2.length;i++){
//            System.out.print(arr2[i]);
//        }
        System.out.println("==标准输出数组格式====================");
        for(int i=0;i<arr2.length;i++){
            //当i等于length-1的时候,说明下标索引已经取到了最后一个元素
            if(i == arr2.length-1 ){
                System.out.println(arr2[i]+"]");
            }else if(i == 0){
                System.out.print("["+arr2[i]+",");
            }else {
                System.out.print(arr2[i]+",");
            }
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值