Java 数组

数组

  • 数组是相同类型数据的有序集合
  • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成
  • 每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们

数组的声明和创建

  • 首先必须声明数组变量,才能在程序中使用数组。
  • Java语言使用new操作符来创建数组,语法如下:
dataType[] arrayRefVar = new dataType[arraySize];
  • 数组的元素通过索引访问的,数组索引从0开始
arrays.length   //获取数组长度

内存分析

  • Java内存分析:

    • 堆:

      • 存放new的对象和数组

      • 可以被所有的线程共享,不会存放别的对象引用

    • 栈:

      • 存放基本变量类型(会包含这个基本类型的具体数值)
      • 引用对象的变量(会存放这个引用在堆里面的具体地址)
    • 方法区

数组的内存分析图

  • 声明数组时只是在堆中产生数组,实际并为创建数组
  • 当创建数组时(也就是new一个数组),会在栈开辟空间用于存放数据

数组的三种初始化

public static void main(String[] args) {
        //静态初始化:创建+赋值
        int[] a = {1,2,3,4,5};

        //动态初始化:包含默认初始化
        int[] nums = new int[10];
    }
  • 默认初始化为数据类型的默认值

数组的使用

  • 普通for循环
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);
    }
  • For-Each循环:一般用于打印输出结果
    //JDk1.5,没有下标
      for (int array:arrays) {
           System.out.println(array);
        }
  • 数组作方法入参
//方法:打印数组元素
    public static void printArray(int[] arrays){
        for (int i = 0; i < arrays.length; i++) {
            System.out.println(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[i] = arrays[j];

        }

        return result;
    }

多维数组

  • 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一堆数组,其每一个元素都是一个数组
public static void main(String[] args) {
        //二维数组
        int[][] arrays = {{1,2},{3,4},{5,6}};

        //打印二维数组:利用嵌套循环即可
        for (int i = 0; i < arrays.length; i++) {
            for (int j = 0; j < arrays[i].length; j++) {
                System.out.println(arrays[i][j]);
            }
        }
    }
  • 最常用的是二维数组

Arrays类

  • 数组的工具类java.util.Arrays
  • Arrays类提供了一些基本操作供我们使用
  • 可以查看JDK帮助文档
  • Arrays类中的方法都是static修饰的方法,我们可以直接使用类名进行调用
  • 常用功能:
public static void main(String[] args) {

        int[] a = {1,2,3,4,5,8,10,44,6};
        //直接打印输出数组元素
        System.out.println(Arrays.toString(a));
        printArray(a);

        //数组排序:升序
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));

        //数组填充
        Arrays.fill(a,0);
        System.out.println(Arrays.toString(a));
    
    	//查找数组元素
        int i = Arrays.binarySearch(a, 9);
    }
  • 类中的方法都是以往程序员编写而来,我们可以便利自己,当想不起使用方法时,也可以自己编写,效果一致
posted @   远帆启航  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示