java中数组问题_java 中的数组问题

1. 静态地定义一个二维数组对象:

int[][] arr = { {1,2,3},

{4,5,6} };

2. 动态地定义一个二维数组的引用:

int[][] arr = new int[2][];  //int[2][]中的"2"表示数组的维度,不可少

arr[0] = new int[3];  //数组第一行定义3个元素

arr[1] = new int[5];  //数组第二行定义5个元素

3. 赋值运算符"="用于基本数据类型时将值复制给变量,但当它用于对象时,则是将对象指定给引用名称来引用,而不是将对象进行复制。

可以将同一个对象指定给多个引用名称,当由其中的一个引用名称对对象进行操作而变更时,其余引用名称所引用到的值也会变动。

例如以以下一段实验代码加以体会:

public class AdvancedArray{

public static void main(String[] args){

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

int[] tmp1 = arr1;

int[] tmp2 = arr1;

System.out.print("get data from tmp1: ");

for(int i=0; i

System.out.print(tmp1[i]+" ");

System.out.print("get data from tmp2: ");

for(int i=0; i

System.out.print(tmp2[i]+" ");

tmp1[2]=9;

System.out.print("/n/nGet data from tmp1: ");

for(int i=0; i

System.out.print(tmp1[i]+" ");

System.out.print("/n/nGet data from tmp2: ");

for(int i=0; i

System.out.print(tmp2[i]+" ");

System.out.println();

}

}

通过这个例子,不难对Java中数组对象和其引用之间的关系有所体会。

4. 复制数组

# 可以使用System.arrycopy(源数组,起始索引,目的数组,起始索引,复制长度) 的方法。

# JDK6.0中新增了copyOf(源数组,复制长度)的方法,复制长度是新建数组对象的长度,若它的值超过了源数组长度,那么多余的元素保留为默认值。

例如:

import java.util.Arrys;

...

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

int[] arr2 = Arrays.copyOf(arr1,arr1.length);

# 用copyOfRange()指定源数组和复制范围,例如:

int[] arr1 = {1,2,3,4,5,6,7,8,9};

int[] arr2 = Arrays.copyOfRange(arr1, 1, 6);  //复制arr1索引号从1到6(不包括6)的元素

结果arr2为{2,3,4,5,6}

5. Arrays.deepEquals(数组1,数组2): 可以比较多维的数组是否相等。

Arrays.deepToString(数组名): 可以以字符串的形式输出多维数组。

6. JDK6.0中可以使用foreach语句简化数组依次存取时的编写方式,例如:

//对于对象数组

String[] arr = {"Beijing","Shanghai","Shenzhen"};

for(String s : arr)

System.out.println(s);

//对于二维数组

int[][] arr = { {1,2,3},

{4,5,6},

{7,8,9} };

for(int[] row : arr){

for(int element : row)

System.out.print(element+" ");

System.out.println();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值