Java数组小记

数组的定义(初始化)

        int a [] = new int[]{};//定义数组
//        int a [] = new int[3];//定义一个长度为3的数组

        int [] b = new  int[]{};//定义数组 不建议使用

        int c [] = new int[]{1,2,3};//初始化赋值
//        int c [] = {3,2,1};//初始化赋值

打印数组的几种方式

        System.out.println(c);//这么做只能输出数组的首地址
        System.out.println(c[0]);//输出数组c的第一个元素

        System.out.println(c.length);//输出数组c的长度
        /**
         * 通过for循环遍历输出数组中的所有元素
         */
        for(int i = 0;i < c.length;i++){
            System.out.println(c[i]);
        }
        /**
         * 通过for each循环遍历输出数组中的所有元素
         */
        for (int i : c) {
            System.out.println(i);
        }
        /**
         * 使用Arrays类中的toString()方法输出数组元素 元素被放置在[]内,通过逗号分隔
         */
        System.out.println(Arrays.toString(c));

给数组进行赋值

        d[0] = 3;//将数组d的第一个元素改为3
        System.out.println(d[0]);
        System.out.println(c[0]);//发现数组c的元素也随之改变

 数组的本质是一个由JVM创建的对象 以上操作其实是对同一个对象进行操作

通过Object类定义的clone()方法创建一个新的对象副本 

        int e []  ={1,2,3};
        int f []  =(int[]) e.clone();//进行类型强制转换
        System.out.println(e[1]);
        System.out.println(f[1]);

        f[1] = 3;
        System.out.println(f[1]);
        System.out.println(e[1]);//此时可以发现数组e的值没有随之改变

使用System的静态方法arraycopy()

        int g [] = new int[]{4,5,6};
        int h [] = new int[3];

        System.arraycopy(g,0,h,0,3);//通过数组g给数组h赋值
        for (int i : h) {
            System.out.println(i);
        }

        System.arraycopy(g,1,g,2,1);//通过数组g改变其本身的值
        for (int i : g) {
            System.out.println(i);
        }
arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

该方法释义(jdk11):从指定的源数组的指定位置开始,将数组复制到目标数组的指定位置。数组组件子序列从src引用的源数组复制到dest引用的目标数组,复制的组件数量等于length参数。
源数组中srcPos到srcPos+length-1位置的分量分别复制到目标数组的destPos到destPos+length-1位置。
如果src和dest参数指向同一个数组对象,则复制的过程就像先将srcPos到srcPos+length-1位置上的组件复制到具有length组件的临时数组中,
然后通过目标数组的destPos+length-1将临时数组的内容复制到destPos位置上一样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值