• JAVA数组(一)


    这几天看了一下有关JAVA的数组部分,下面就写几个有关数组的代码利于掌握;

    ㈠复制数组;

    利用的是System.arraycopy(src, srcPos, dest, destPos, length);

    其中五个参数的意义代表 src--被复制数组,srcpos---从第几个元素开始复制,dest---要复制的数组,destpos---从第几个元素开始存储,length----一共需要复制的数组个数;

    实现的功能就是把a数组中得内容从a[0]复制到b数组中,b数组从b[2]开始接收a数组的内容,接收数目为3个,所以b[2]到b[5]就存储a数组的a[0]--a[3]的内容

    代码如下:

    package Practise;
    public class ArrayCopy {
        public static void main(String[] args){
            String[] a = {"liao", "cheng", "shi", "dou"};
            String[] b = new String[a.length + 1];//数组b的初始化,申请的长度比a大一
            System.arraycopy(a, 0, b, 2, 3);//从a的第一个元素开始复制,b从第二个元素开始接收三个元素
            for (int i = 0; i < b.length; i++){
                System.out.println(b[i]);
            }
        }
    }

    运行结果如下:

    ㈡引用Copy

    代码如下:

    package Practice;
    public class ReferenceCopyArray{
        public static void main(String[] args){
            int [] a = {2, 4, 6, 8, 10};////定义一个数组
            int [] b = a;////将a赋值给b
            a[0] = 1;
            a[1] = 3;
            a[2] = 5;
            a[3] = 7;
            a[4] = 9;
            for (int i = 0; i < b.length; i++){
                System.out.print(b[i] + " ");
            }
        }
     
    }

    运行结果:

    1 3 5 7 9

    解释:有的人说为什么不是输出的是2, 4, 6, 8, 10;因为这是引用复制,对a的操作其实就是对b的操作,a改变即b改变;相当于C++中得引用&;

    ㈢不规则数组的测试

    代码如下:

    package Practice;
    import java.util.Arrays;
    public class RaggedArray {
        public static void main(String[] arg){
            int [][] raggedArray = new int[10][];//新建一个不规则数组,一维数组元素个数为10
            for (int i = 0; i <raggedArray.length; i++){//在第一维上进行遍历
                raggedArray[i] = new int[i + 1];//初始化二维数组(长度是变化的)
                for (int j = 0; j < raggedArray[i].length; j++){
                    raggedArray[i][j] = j;//为二维数组每一个元素赋值
                }
            }
            /*
             * 第一种输出格式,转化成字符串输出
            for (int i = 0; i < raggedArray.length; i++){
                String arrayStr = Arrays.toString(raggedArray[i]);//将二维数组的每一个元素转化成字符串
                System.out.println(arrayStr);
            }*/
            //第二种输出格式,正常的输出
            for (int i = 0; i < raggedArray.length; i++){
                for (int j = 0; j < raggedArray[i].length; j++){
                    System.out.print(raggedArray[i][j] + " ");
                }
                System.out.println();
            }
        }
    }

    第一种的输出格式,转化成字符串形式输出

    第二种输出格式为:

  • 相关阅读:
    bzoj4804
    bzoj2962
    bzoj4827
    bzoj2553
    bzoj3611
    BZOJ 1636: [Usaco2007 Jan]Balanced Lineup
    BZOJ 1635: [Usaco2007 Jan]Tallest Cow 最高的牛
    BZOJ 1634: [Usaco2007 Jan]Protecting the Flowers
    BZOJ 1631: [Usaco2007 Feb]Cow Party
    BZOJ 2582: [Usaco2012Jan]Bovine Alliance
  • 原文地址:https://www.cnblogs.com/lidaojian/p/2532129.html
Copyright © 2020-2023  润新知