Java学习笔记5-数组入门

数组的声明与创建

  • 一旦创建就不能改变大小
  • 必须相同类型,可以是任意类型
  • 数组变量属于引用类型,可以看成是对象,每个元素相当于该对象的成员变量。位于堆中
    public static void main(String[] args) {
        int[] nums;  // 声明:栈中出现一个数组引用
        nums = new int[10];  // 定义对象:堆中有一个10个空间的数组,有默认值

        
        double[] nums2 = new double[20];  // 写在一起也可以

数组初始化

  • 静态初始化

  • 动态初始化

  • 默认初始化

        public static void main(String[] args) {
            // 静态初始化
            int[] a = {1, 2, 3, 4, 5};
            System.out.println(a[3]);
            
            // 动态初始化
            int[] b = new int[10];
            b[0] = 10;
            System.out.println(b[0]);
    
            // 默认初始化(也属于动态)
            System.out.println(b[1]);
        }
    

内存分析

  • 堆:存放对象
  • 方法区

数组的使用

    public static void main(String[] args) {
        int[] a = {1,2,3,4,5};
        System.out.println(add(a));
        a = array_reversed(a);
        for (int i : a) {
            System.out.print(i + " ");
        }
    }

    public static int add(int[] nums) { // 数组作为参数
        int result = 0;
        for (int i = 0; i < nums.length; i++) {
            result += nums[i];
        }

        int result2 = 0;
        for (int num : nums) { // 数组的遍历 nums.for
            result2 += num;
        }
        return result;
    }

    public static int[] array_reversed(int[] array){ // 数组做返回值
        int[] result = new int[array.length];
        for (int i = 0, j = result.length-1; i < array.length; i++, j--) {
            result[j] = array[i];
        }
        return result;
    }

多维数组

int a[][] = new int[2][5];

Arrays类

    public static void main(String[] args) {
        int[] a = {1, 2, 4, 475, 345, 234, 23, 436, 75, 3, 2, 5346, 34646};

        System.out.println(a); // [I@10f87f48  hashCode

        // 打印数组元素
        System.out.println(Arrays.toString(a));

        // 数组排序再输出
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));

        // 填充:将2到4填充为0,可以各种重载
        Arrays.fill(a, 2, 4, 0);
        System.out.println(Arrays.toString(a));
    }

稀疏数组

当一个数组中大部分值都是0,或者都是同一个值的时候,就是稀疏数组(例如边>>点的图)

用一个数组保存每个点,一个数组元素代表[行,列,值]

参考资料:https://www.bilibili.com/video/BV12J41137hu?p=59

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读