Course note: Arrays(及内存原理,遍历), An (Object of )Arrays of Objects, 2D Array,As Return Type

这篇博客详细介绍了Java中的数组,包括数组的初始化(动态与静态),省略格式声明,调用元素的方法,内存分配原理,获取数组长度,遍历方式,以及对象数组和二维数组的声明与遍历。特别强调了数组长度在运行时不可变的特性,并通过示例展示了如何存储和操作对象数组,包括Book类的实例。最后探讨了二维数组的声明和遍历方式。
摘要由CSDN通过智能技术生成

Array(数组)

 

数组初始化:

与C语言一样,在内存中创建一个数组,并赋予默认值

注意JAVA的数组声明与c语言格式不一样 ! !

Java是把[ ] 放数组名的前面 ! !

1.动态初始化(在最开始时定义数组长度)

数据类型[ ] 数组名称 = new 数据类型[数组长度];

2.静态初始化(在最开始时指定具体内容)

数据类型[ ] 数组名称= new 数据类型[ ] {元素1, 元素2,...};

 

数组声明的省略格式(推荐):

 

1.动态初始化

无省略格式!

强行用只会报错:

 

2.静态初始化

数据类型[ ] 数组名称 = {元素1, 元素2,...};

注意到非省略格式的初始化可以拆分为两个步骤:

以及

而省略格式就不能这么做!

 

调用数组元素:

与C语言一样,索引值从0开始,索引值最大值 比数组个数小1。

 

数组内存

 

原理:

 

 

 

获取数组长度(元素个数):

使用: 数组名. length

输出:4

 

数组长度在程序运行期间不可改变:

但是以下情况仍然可以运行:

原理:

实际上只是在堆里创建了两个不同的数组,然后它们依次使用arrayC这个名字。两个数组本身的长度并没有改变。

 

数组遍历

除了此之外还可以使用不带index的遍历:

 

Primitive Arrays of Objects
 

Primitive arrays can store any type of object.
Consider a primitive array holding Books class taype of object.
 

定义一个Book class(请忽略toString(),其暂时与本例子所表达的思想无关)

 

然后再主类里定义一个Book型的array并赋值

其结构可参考下图(内容不一样,仅参考结构)

依然可以像普通array那样调用并修改元素值:

注意需要用到new 关键字

这样,第三个元素的值就被修改了。

或者可以利用getter&setter,但需要一项项更改。

将元素直接赋值为null,就可以抹去该元素的值

 

 

 

Can you design an object that stores an array of Book objects?

Why not!

在已有的Book class 基础上(getter&setter省略不截图),

定义一个ArrayOfBookObject class

 

再定义一个 TheObjectStoresArrayOfBookObject class

 

Arrays can store any kind of object, including other arrays!
——这也是array of String的思想

 

2-Dimensional Arrays
 

声明格式:

逻辑还是与C语言的一样:

2D Arrays 的遍历

Nested Loop:

Without index(foreach)

输出

 

因为方法返回值不能有多个,所以当我们需要返回多个值时,可以用array作为方法返回值

 

使用与c语言的function一样

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值