Java创建动静初始化和多维数组

简介: Java创建动静初始化和多维数组

  数组的初始化方式总共有三种:静态初始化、动态初始化、默认初始化。下面针对这三种方式分别讲解。

1. 静态初始化

除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。

静态初始化数组

int[] a = { 1, 2, 3 };// 静态初始化基本类型数组;
Man[] mans = { new Man(1, 1), new Man(2, 2) };// 静态初始化引用类型数组;

2.动态初始化

     数组定义与为数组元素分配空间并赋值的操作分开进行。

动态初始化数组:

int[] a1 = new int[2];//动态初始化数组,先分配空间;
a1[0]=1;//给数组元素赋值;
a1[1]=2;//给数组元素赋值;

3.数组的默认初始化

     数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

数组的默认初始化:

int a2[] = new int[2]; // 默认值:0,0
boolean[] b = new boolean[2]; // 默认值:false,false
String[] s = new String[2]; // 默认值:null, null

4.多维数组

多维数组可以看成是数组的数组,二维数组是最基本的多维数组。

要创建多维数组,请将每个数组放在其自己的一组方括号内。

下面是一个二维数组的例子:

int[][] num = {{1,2,3},{4,5,6}};

在上面的例子中,声明了一个有两个数组作为其元素的数组。

    0   1   2    上面的012为索引值,不是数组内的

0   1   2   3

1   4   5   6

要访问二维数组中的元素,需要提供两个索引,一个用于数组,另一个用于该数组中的元素。

下面是一个例子,用于访问第二个num数组中的第一个元素。两个位置分别是行列

int x = num[1][0];
System.out.println(x);
// 输出 4

提示:数组的两个索引称为行索引和列索引。

多维数组可以看成是数组的数组,二维数组是最基本的多维数组。

要创建多维数组,请将每个数组放在其自己的一组方括号内。

下面是一个二维数组的例子:

int[][] num = {{1,2,3},{4,5,6}};

在上面的例子中,声明了一个有两个数组作为其元素的数组。

要访问二维数组中的元素,需要提供两个索引,一个用于数组,另一个用于该数组中的元素。

下面是一个例子,用于访问第二个num数组中的第一个元素。

int x = num[1][0];
System.out.println(x);
// 输出 4

提示:数组的两个索引称为行索引和列索引。

在 Java 中,你可以使用同一对方括号来获取并设置多维数组的元素。

下面是一个例子:

int[][] myArray = {{1, 2, 3}, {4}, {5, 6, 7}};
myArray[0][1] = 30;
int x = myArray[1][0]; 
// 输出 4

上面的二维数组包含三个数组。第一个数组有三个元素,第二个数组有一个元素,第三个数组有三个元素。

提示

在 Java 中,你可以设置多维数组,可以在数组中无限嵌套数组。但是,这将极为不好维护。

请记住,所有数组成员类型必须是相同的。

目录
相关文章
|
2天前
|
Java 定位技术
JAVA多维数组
JAVA多维数组
25 0
|
2天前
|
存储 Java
【Java开发指南 | 第七篇】静态变量生命周期、初始化时机及静态变量相关性质
【Java开发指南 | 第七篇】静态变量生命周期、初始化时机及静态变量相关性质
17 4
|
2天前
|
XML 存储 Java
11:Servlet中初始化参数的获取与应用-Java Web
11:Servlet中初始化参数的获取与应用-Java Web
27 3
|
1天前
|
存储 Java 测试技术
滚雪球学Java(31):玩转多维数组:高效访问和遍历
【5月更文挑战第6天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
6 0
滚雪球学Java(31):玩转多维数组:高效访问和遍历
|
2天前
|
存储 Java 测试技术
滚雪球学Java(30):多维数组:定义和初始化一次搞定
【5月更文挑战第5天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
7 0
滚雪球学Java(30):多维数组:定义和初始化一次搞定
|
2天前
|
存储 算法 搜索推荐
滚雪球学Java(27):从零开始学习数组:定义和初始化
【5月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
10 3
|
2天前
|
存储 IDE Java
Java一分钟之变量声明与初始化基础
【5月更文挑战第7天】本文介绍了Java编程中的变量声明与初始化,包括变量的类型和命名规则,以及显式和默认初始化。文章强调了局部变量必须初始化的重要性,并列举了三个常见问题:类型不匹配、未初始化和作用域混淆。为避免这些问题,建议明确类型、主动初始化、注意作用域,并利用IDE辅助。通过示例代码展示了正确使用变量的方法,鼓励读者通过实践加深理解。
18 0
|
2天前
|
Java
Java为什么建议初始化HashMap的容量大小?
【5月更文挑战第3天】Java中初始化HashMap容量能提升性能。默认容量16,扩容按当前的1/2进行。预估元素数量设定合适容量可避免频繁扩容,减少性能损耗。过大浪费内存,过小频繁扩容,需权衡。Java 8后扩容策略调整,但核心仍是预估初始容量以优化性能。
40 1
|
2天前
|
Java 编译器
【Java探索之旅】解密构造方法 对象初始化的关键一步
【Java探索之旅】解密构造方法 对象初始化的关键一步
17 1
|
2天前
|
存储 Java 编译器
【Java探索之旅】数组概念与初始化指南:动静结合
【Java探索之旅】数组概念与初始化指南:动静结合
23 0