Java数组

Java中提供的数组是用来存储固定大小的同类型元素

 一维数组

  1、声明数组变量

    必须先声明数组变量,才能使用数组。

dataType[] arrayRefVar;   // 首选的方法
或
dataType arrayRefVar[];  // 效果相同,但不是首选方法

 

  2、创建数组

    Java中采用new操作符来创建数组

arrayRefVar = new dataType[arraySize];

    上面的语法语句做了两件事:

      1)使用 dataType[arraySize] 创建了一个数组

      2)把新创建的数组的引用赋值给变量 arrayRefVar

 

    数组的声明和创建使用一条语句完成

dataType[] arrayRefVar = new dataType[arraySize];
// 如:
String[] sarr=new String[10];
// 创建并初始化数组
dataType[] arrayRefVar = {value0, value1, ..., valuek};
// 如:
String[] sarr = {"1", "2", "3"};

  

  3、数组访问

        // 数组访问
        String s = sarr[0];
        // 数组元素赋值
        sarr[1] = "4";

 

  4、数组遍历

    1)普通for循环

        // 普通for循环遍历
        for(int i=0;i<sarr.length;i++){
            System.out.println(sarr[i]);
        }

    2)For-Each循环

      增强for循环可以在不使用数组下标的情况下遍历数组  

        // 增强for循环遍历数组
        for (String s : sarr) {
            System.out.println(s);
        }

 

 

 

 多维数组

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

  二维数组:String[][] str = new String[3][4]; 可以看成是一个三行四列的数组

    

   

   多维数组的动态初始化(以二维数组为例)

type[][] tableName = new type[rowLength][columnLength];

  type 可以为基本数据类型和复合数据类型,rowLength(行数) 和 columnLength(列数) 必须为正整数。

  

  二维数组的初始化,以三行四列数组为例:

复制代码
        // 二维数组初始化
        int[][] table = {
                {1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12}
        };
        // 创建并初始化
        int[][] table2 = new int[][]{
                {1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12}
        };
复制代码

 

  二维数组的访问:

    多维数组中每个维度的索引都是从0开始的,可使用 tableName[rowNumber][columnNumber]来访问二维数组中的每个元素。

 

  二维数组的遍历:

        int rowLen = table.length; // 3 (rowLength)
        // 遍历
        for (int i = 0; i < rowLen; i++) { // 遍历得到每一行
            int columnLen = table[i].length;
            for (int j = 0; j < columnLen; j++) { // 遍历当前行的每一列
                System.out.println(table[i][j]);
            }
        }

 

     二维数组的遍历,第一层遍历得到的是每一行,第二层遍历当前行的每一列。

  

 

    

 

 

END.

posted @   杨岂  阅读(44)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
历史上的今天:
2020-12-14 Seata分布式事务中间件学习和实践
点击右上角即可分享
微信分享提示