首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Java基本语法——数组结构(多维数组)

Java基本语法——数组结构(多维数组)

原创
作者头像
小明爱吃火锅
发布2023-09-29 13:11:27
发布2023-09-29 13:11:27
1K0
举报
文章被收录于专栏:小明说Java小明说Java

前言

本讲继续讲解了Java的基础语法,数据结构数组,数组也是Java很多数据结构的一个重要部分之一,一般开发中其实很少使用数组,反而用相关集合类,比如List和ArrayList,这些性能以及对应的api调用比数组丰富,我们后续慢慢也会讲解和使用这些集合类。

一、数组是什么

数组是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式

对这些数据进行统一管理。

比如,有一组学生,这样的一组数据,就可以看成数组。

我们如果需要获取这个学生数组的数据,就可以,通过序号,直接获取。其实在Java数组结构一些常见概念: 数组名 == 学生 下标(或索引) == 序号 元素 == 学生名字 数组的长度

数组的分类

  • 按照维度:一维数组、二维数组、三维数组、…
  • 按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组(即对象数组)

二、一维数组

一维数组,比较容易理解,我们可以利用几何知识来解释,一维指的是行,算是比较简单的数组。

1.声明

type var[] 或 type[] var ,type表示数据类型,可以基本数据类型,也可以引用对象数据类型。

例如:

代码语言:javascript
复制
int a[];

int[] a1;

double b[];

String[] c; //引用类型变量数组

数组声明的时候,是不能指定数组的长度的,同时idea开发工具也会提示

2.初始化

所有变量都会初始化,数组也是不例外的,可以声明和初始化一起,也可以先声明,再初始化,数组初始化的时候需要指定数组的长度。

数组初始化,用关键字 new type[长度],java在内存就会分配指定长度的数组,数组的下标(序号)范围是0 到 长度 - 1。

如声明并初始化一个长度为 3 的int类型数组

代码语言:javascript
复制
int[] arr = new int[3];

先声明,后初始化:

代码语言:javascript
复制
String names[];
names = new String[3];

2.数组元素引用

数组赋值:数组赋值,需要指定对应的序号进行赋值,相当于放到对于的坑位。

代码语言:javascript
复制
        String names[];
        names = new String[3];
        names[0] = "小明";
        names[1] = "小红";
        names[2] = "小张";

最终这个数组在内存中的存储结构如下:

数组元素获取:数组名[数组元素下标]

  • 数组元素下标可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];
  • 数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 —>n-1;如int a[]=new int[3]; 可引用的数组元素为a[0]、a[1]、a[2]

获取数组第一个元素

如果获取的序号超过数组定义的长度,则会报错:

三、多维数组

多维数组,利用几何知识来解释,一维指的是行,二维是面,三维是体,其实在工作中很少会用到多维数组去存储,这一部分可以作为了解,知道有这么一回事。

1.多维数组的使用

上面我们知道一维数组使用的是一个中括号[],那么多维就使用多个,比如二维数组使用的是两个中括号[][],第一个表示横向数据(行),第二个表示纵向数据(列)。比如我们定义一个表格,如三行两列的表格

用二维数组定义的话,如下:

代码语言:javascript
复制
        String students[][];
        // 定义 3行,2列的数据
        /**
         * (0,0)小明	(0,1)16
         * (1,0)小红	(1,1)17
         * (2,0)小张	(2,1)18
         */
        students = new String[3][2];
        students[0][0] = "小明";
        students[1][0] = "小红";
        students[2][0] = "小张";
        students[0][1] = "16";
        students[1][1] = "17";
        students[2][1] = "18";

所以二维数组作为表格存储,只不过,行竖是从 0 开始,获取二维数组对应元素如下:

代码语言:javascript
复制
        // 获取第一行,第二列,也就是(0,1)
        System.out.println("第一行,第二列:"+students[0][1] );
        // 遍历数组所有元素
        for (int i = 0; i < students.length; i++) {
            for (int j = 0; j < students[i].length; j++) {
                System.out.println("第"+i+"行"+"第"+j+"列:"+students[i][j] );
            }
        }

四、关于数组常见练习题

本讲内容其实不是很多,初学者主要熟悉一维数组的使用即可,接下来我们用两道练习题,来巩固一下对于数组的理解。

1.定义一个int型的一维数组,包含10个元素,分别赋一些随机整数, 然后求出所有元素的最大值,最小值,和值,平均值,并输出出来。

代码语言:javascript
复制
 public static void main(String[] args) {
        /*
        * 1.定义一个int型的一维数组,包含10个元素,分别赋一些随机整数, 然后求出所有元素的最大值,最小值,和值,平均值,并输出出来。
        * */
        int arr[] = new int[10];
        arr[0] = 1;
        arr[1] = 2;
        arr[2] = 3;
        arr[3] = 4;
        arr[4] = 5;
        arr[5] = 6;
        arr[6] = 7;
        arr[7] = 8;
        arr[8] = 9;
        arr[9] = 10;

        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max){
                max = arr[i];
            }
        }

        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < min){
                min = arr[i];
            }
        }

        /*
         2.获取arr数组中所有元素的和(自定义1到10的数组)
        * */
        int sum=0;
        for (int i = 0; i < arr.length; i++) {
            sum =sum+arr[i];
        }
        System.out.println("数组arr之和:" + sum);
        System.out.println("数组arr最大值:" + max);
        System.out.println("数组arr最小值:" + min);
        System.out.println("数组arr平均值:" + sum / arr.length);
    }

​我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、数组是什么
  • 二、一维数组
    • 1.声明
    • 2.初始化
    • 2.数组元素引用
  • 三、多维数组
    • 1.多维数组的使用
  • 四、关于数组常见练习题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档