Java一维数组和二维数组

数组

一维数组
一维数组的使用:
数组是一个包含相同类型的一个集合。当我们需要许多相同类型的元素进行操作的时候,如果像之前一样一个一个定义,是会很麻烦的,所以我们就需要一个集合,这个集合里存放的是相同类型的数据,那么我们就把这个集合称为数组。
定义:
通用声明方式: 类型名 [ ] 数组名;

   1、Int[]  arr = {1,2,3};
   2、声明的同时进行初始化方式
        Int[]  arr=new  int[]{1,2,3};
   3、先声明后初始化,使用的是系统分配的默认值0
        Int[]  arr=new  int[100];//默认初始值0;

遍历:

   1、for(int i=0;i<arr.length;i++){
             打印下标};
   2、	foreach:
        for(int value:arr){
             打印value};
   3、	直接打印Array.toString(arr);
   2和3 有局限,不能够修改单个元素,只能打印

拷贝:
一维数组拷贝,都是深拷贝

   1、	for循环遍历
   for(int i=0;i<arr.length;i++){
         brr[i] = arr[i];}
   2、 clone拷贝
       brr = arr.clone();
   3、	brr = Arrays.copyOf(arr,arr.length);
   4、	System.arraycopy(arr,0,brr,0,arr.length);
                (原始数组,从第几个考,新数组,拷贝到第几个,长度)

对于基本数据类型的一维数组:4种拷贝方式都是深拷贝
深浅拷贝:
深拷贝:不存在内存共享
浅拷贝:存在内存共享现象

二维数组
二维数组的使用:
通俗理解就是一维数组中每一个元素不再是一个具体类型的元素,而是一个一维数组。
定义:

Int[][] arr={{1,2,3},{4,5,6}};    //定义两行三列
Int[][] arr = new int[][]{{1,2,3},{4,5,6}};   //定义两行三列
Int[][] arr = new int[5][5];

交错数组:

Int[][] arr = new int[3][];
Arr[0]=new int[2];
Arr[1]= new int[5];
Arr[2]= new int[3];

遍历:

public class test {
    public static void main(String[] args){
        int[][] arr=new int[3][2];
        for(int i=0;i<3;i++){
            for(int j=0;j<2;j++){
                arr[i][j] = i+j;
            }
        }
        int[][] brr ={{1,2},{3,4},{5,6}};
        int[][] crr = new int[][]{{1,2},{3,4},{5,6}};
        for(int i=0;i<3;i++){
            for(int j=0;j<2;j++){
                System.out.print(arr[i][j]+"\t");
                System.out.print(brr[i][j]+"\t");
                System.out.print(crr[i][j]+"\t");
            }
            System.out.println();
        }    
    }
}

拷贝:

package com.tulun.work;
import java.util.Arrays;
public class test {
    public static void main(String[] args){
        int[][] arr ={{1,2},{3,4},{5,6}};
        int[][] brr = new int[3][2];
        int[][] err = new int[3][2];
        for(int i=0;i<3;i++){        //深拷贝
            for(int j=0;j<2;j++){
                brr[i][j] = arr[i][j];}}
        System.out.println(arr[0]+"\t"+brr[0]);
        int[][] crr = arr.clone();           //clone()浅拷贝
        System.out.println(arr[0]+"\t"+crr[0]);
        for(int i = 0;i<arr.length;i++){    //clone()深拷贝
            crr[i] = arr[i].clone();}
        System.out.println(arr[0]+"\t"+crr[0]);
        int[][] drr = Arrays.copyOf(arr,arr.length);   //Arrays.copyOf浅拷贝
        System.out.println(arr[0]+"\t"+drr[0]);
        for(int i=0;i<arr.length;i++){        //Arrays.copyOf深拷贝
            drr[i] = Arrays.copyOf(arr[i],arr[i].length);}
        System.out.println(arr[0]+"\t"+drr[0]);
        System.arraycopy(arr,0,err,0,arr.length);   //System.arraycopy浅拷贝
        System.out.println(arr[0]+"\t"+err[0]);
        for(int i=0;i<arr.length;i++){        //System.arraycopy深拷贝
            System.arraycopy(arr[i],0,drr[i],0,drr[i].length);}
        System.out.println(arr[0]+"\t"+drr[0]);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值