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<tmp1.length; i++)
            System.out.print(tmp1[i]+" ");
           
        System.out.print("get data from tmp2: ");
        for(int i=0; i<tmp2.length; i++)
            System.out.print(tmp2[i]+" ");
           
           
        tmp1[2]=9;
        System.out.print("/n/nGet data from tmp1: ");
        for(int i=0; i<tmp1.length; i++)
            System.out.print(tmp1[i]+" ");
           
        System.out.print("/n/nGet data from tmp2: ");
        for(int i=0; i<tmp1.length; 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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值