繁体   English   中英

如何复制数组或数组列表

[英]How to copy an array or arraylist

认为有一个名为barca []的数组。 该阵列具有播放器列表。 球员被确定为阶级。 例如barca [0] = messi; messi是一名球员。 我要复制barca []。 如果我写barca2 [] = barca []; 我复制数组,但是当barca2 []更改时,barca []也更改。 我希望他们独立。 我能怎么做? `公共类Main {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Player barca[] = new Player[10];
    Player barca2[] = new Player[10];
    for(int i=0; i<10; i++){
        barca[i] = new Player();
        barca[i].id = i;
    }
    barca2 = barca;

    //print the arrays
    for(int i = 0; i<10; i++){
        System.out.print(barca[i].id);
    }
    System.out.println();
    for(int i = 0; i<10; i++){
        System.out.print(barca2[i].id);
    }

    //change an array
    barca2[5].id=100;
    System.out.println();   

    //print the arrays
    for(int i = 0; i<10; i++){
        System.out.print(barca[i].id);
    }
    System.out.println();
    for(int i = 0; i<10; i++){
        System.out.print(barca2[i].id);
    }

}

}

输出:

0123456789 0123456789 012341006789 012341006789`

这很容易实现,如果我们通过Arraylist进行分析,那么在示例代码中还将获得列出的两个选项Direct和Indirect。 您可以在复制arraylist之后编辑对象。 它不会影响第一个arraylist。 请检查完整的代码以完全理解。

//1. Direct: Copy player list into player1 List
List<Player> player1 = new ArrayList<Player>(player);

//2. Indirect using method: Copy player list into player1 List
List<Player> player1 = new ArrayList<Player>();
player1.addAll(player);

您可能会在此处看到完整的代码。 您可以在此处测试代码。

尝试这个:

List<String>baraca=new ArrayList<>();
        List<String>temp=new ArrayList<>();

        baraca.add("messi 1");
        baraca.add("messi 2");
        baraca.add("messi 3");
        baraca.add("messi 4");
        temp= new ArrayList<String>(baraca);

        temp.add("messi temp");

        System.out.println(baraca);
        System.out.println(temp);

输出:

[messi 1, messi 2, messi 3, messi 4]
[messi 1, messi 2, messi 3, messi 4, messi temp]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM