小C的第一宇宙
wangc
Jan 22, 2020
阅读本文需要 4 分钟(按字数)

数组

数组概念:数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致.

定义和访问

  • 定义数组
// 默认数组内元素值为0
int[] arr = new int[3];               // 动态初始化(指定长度)
int[] arr = new int[]{1,2,3,4,5};  // 静态初始化(指定内容)
int[] arr = {1,2,3,4,5};               // 省略的静态初始化

// 左侧的中括号:代表是一个数组
// 右侧的new:代表创建数组的动作

*访问数组:数组名[索引]

tips: 直接打印数组名称,返回的是哈希地址值

内存原理图

基本操作

public class Array {
    public static void main(String[] args) {
        int[] arr = { 1, 2, 3, 4, 5 };
        System.out.println("数组:");
        printArray(arr);
        System.out.println("最大值:" + getMax(arr));
        arr = reverseArray(arr);
        System.out.println("逆序:");
        printArray(arr);
    }

    // 数组遍历输出
    public static void printArray(int[] arr) {
        for(int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
    // 找数组最大值
    public  static int getMax(int[] arr) {
        int max = 0;
        for(int i = 0; i < arr.length; i++) {
            if(max < arr[i]) {
                max = arr[i];
            }
        }
        return max;
    }

    // 数组反转
    public static int[] reverseArray(int[] arr) {
        for (int i = 0; i < arr.length/2; i++) {
            int tmp = arr[i];
            arr[i] = arr[arr.length-1-i];
            arr[arr.length-1-i] = tmp;
        }
        return arr;
    }
}

数组与方法

  • 数组作为参数
  • 数组作为返回值,可以返回多个值
public class ArrayReturn {

    public static void main(String[] args) {
        int[] result = calculate(10, 20, 30);
    
        System.out.println("总和:" + result[0]);
        System.out.println("平均数:" + result[1]);
    }
    
    public static int[] calculate(int a, int b, int c) {
        int sum = a + b + c; // 总和
        int avg = sum / 3; // 平均数

        int[] array = { sum, avg };
        return array;
    }
}