java获取数组长度报错,java学习第七天

数组是存储一组相同数据的容器。数组创建以后,他能存储的元素个数就固定了。数组在栈内存中存储的是数组的地址,堆内存中存储的是真实的数据。可以通过索引下标取出数组中的某个元素。

创建初始化和访问数组

f741cd9a1a40

数组创建与访问

数组的创建有两种方式:

int    arr[]    =    {10,11,19,80,10}    //直接给数组赋值。

String[]    arr    =    new    String[10]        //定义数组的长度,可以通过下标赋值。未赋值前显示null

数组的访问:

访问数组中某个元素需要两个部分包括数组的名称和元素的下标arr[index]。元素的下标是从0开始的,所以arr[0]表示数组的第一个元素。如果下标超出数组的长度会报错:java.lang.ArrayIndexOutOfBoundsException

length属性可以获取数组的长度。

f741cd9a1a40

length属性

获取数组中最后的元素:arr[arr.length - 1]。

修改元素的方法:直接用新的值覆盖旧的值就可以。arr[0] = 25。此时arr[0]的值就变为25

数组的遍历

我们可以通过for语句循环遍历数组中的元素。

f741cd9a1a40

for遍历数组

还可以使用增强for循环遍历数组

f741cd9a1a40

增强for循环

item表示数组中的单个值,arr表示要循环遍历的数组。int表示数组的数据类型。

基本数据类型和引用数据类型的区别

f741cd9a1a40

区别1

基本数据类型赋值时相当于拷贝,修改新的变量不会改变原来的变量。引用数据类型赋值时,相当于把地址传递给新的值,两个变量共享了一块数据地址,所以更改了新值后,旧的值也会发生改变。基本数据类型和引用数据类型在方法中传参时也会出现这样的问题。

复制一个数组

既然数组无法直接赋值进行拷贝,如何解决这个问题呢?

1.可以定义两个数组,循环遍历需要拷贝的数组,将每个元素添加到新的数组里面。

f741cd9a1a40

数组的拷贝

可以看出修改arr2中的元素arr1中的元素并没有发生改变。Arrays.toString(数组名)可以将数组以字符串的形式输出。

2. 直接复制数组,Arrays中的方法copyOf

f741cd9a1a40

Arrays.copyOf()

方法中第一个参数为需要拷贝的数组,第二个为新数组的长度。

二维数组

f741cd9a1a40

二维数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值