Day07_java数组 数组的使用

数组的使用

  • For-Each循环
  • 数组做方法入参
  • 数组作返回值
package com.lemon.array;

public class ArrayDemo03 {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};

        //打印全部的数组元素
        for (int i = 0; i < arrays.length; i++) {
            System.out.println(arrays[i]);
        }
        System.out.println("=========");
        //计算所有元素的和
        int sum = 0;
        for (int i = 0; i < arrays.length; i++) {
            sum += arrays[i];
        }
        System.out.println("sum="+sum);
        System.out.println("=========");
        //查找最大元素
        int max = arrays[0];
        for (int i = 1; i < arrays.length; i++) {
            if (arrays[i]>max){
                max = arrays[i];
            }
        }
        System.out.println("max="+max);
    }
}

反转数组

package com.lemon.array;

public class ArrayDemo04 {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
        //JDK1.5,没有下标
        /*for (int array : arrays) {
            System.out.println(array);
        }*/
        //printArray(arrays);
        int[] reverse = reverse(arrays);
        printArray(reverse);

    }
    //打印数组元素
    public static void printArray(int[] arrays){
        for (int i = 0; i < arrays.length; i++) {
            System.out.print(arrays[i]+" ");
        }
    }
    //反转数组
    public static int[] reverse(int[] arrays){
        int[] result = new int[arrays.length];
        //反转的操作
        for (int i = 0, j = arrays.length-1; i < arrays.length; i++,j--) {
            result[j] = arrays[i];

        }
        return result;
    }
}

多维数组

  • 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。

  • 二维数组

    int a[][]= new int[2][5];
    
  • 解析:以上二维数组a可以看成一个两行五列的数组。

  • 思考:多维数组的使用?

    num[1][0];
    
package com.lemon.array;

public class ArrayDemo05 {
    public static void main(String[] args) {
        int[][] array={{1,2},{2,3},{3,4},{4,5}};
        //[4][2]
        /*
        1,2     array[0]
        2,3     array[1]
        3,4     array[2]
        4,5     array[3]
         */
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.println(array[i][j]);
            }

        }


    }
}

Arrays类

  • 数组的工具类java.util.Arrays
  • 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。
  • 查看JDK帮助文档
  • Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意:是"不用”而不是"不能")
  • 具有以下常用功能:
    • 给数组赋值:通过fill方法。
    • 对数组排序:通过sort方法,按升序。
    • 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
    • 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
package com.lemon.array;

import java.util.Arrays;

public class ArrayDemo06 {
    public static void main(String[] args) {
        int[] a = {1,8790,78,82,3618,871236,3};
        System.out.println(a);//[I@4554617c
        //打印数组元素Arrays.toString(a)
        // Ctrl+鼠标右键进入Arrays原码
        //Arrays
        System.out.println(Arrays.toString(a));
        printArray(a);//调用自己写的方法
        System.out.println();
        System.out.println("=============================");
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
        //Arrays.fill(a,2,4,0);将a[2]~a[4]赋值为0
        Arrays.fill(a,0);//数组填充
        System.out.println(Arrays.toString(a));

    }
    public static void printArray(int[] a){
        for (int i = 0; i < a.length; i++) {
            if (i==0){
                System.out.print("[");
            }
            if (i==a.length-1){
                System.out.print(a[i]+"]");
            }else{
                System.out.print(a[i]+", ");
            }
        }


    }

}

//运行结果

[I@4554617c
[1, 8790, 78, 82, 3618, 871236, 3]
[1, 8790, 78, 82, 3618, 871236, 3]
=============================
[1, 3, 78, 82, 3618, 8790, 871236]
[0, 0, 0, 0, 0, 0, 0]

Process finished with exit code 0
上一篇:SCRUM冲刺day07


下一篇:ansible剧本--day07--jinja模板实操