java中列表深復制的三種方法


有兩種方式:

1.循環

循環第一個list,然后每循環一次,就給新的list賦值

List<String> oneList = new ArrayList<String>();
List<String> twoList = new ArrayList<String>();
oneList.add("1");
oneList.add("2");
oneList.add("3");

for(String str : oneList){
twoList.add(str);
}


for(String str : twoList){
System.out.println(str);
}

結果:

1
2
3


2.arrayList的addAll()方法

List<String> oneList = new ArrayList<String>();
oneList.add("1");
oneList.add("2");
oneList.add("3");

for(String str : oneList){
System.out.println("one:"+str);
}

List<String> twoList = new ArrayList<String>();
twoList.add("4");
twoList.addAll(oneList);
for(String str : twoList){
System.out.println("two:"+str);
}
3、構造器
public class T1 {
    private static ArrayList<String> dateType = new ArrayList<String>(){{
        this.add("2020-01");
        this.add("2020-02");
        this.add("2020-03");
    }};

    public static void main(String[] args) {
        final ArrayList<String> list = new ArrayList<String>() {{
            this.add("2020-01");
            this.add("2020-02");
        }};

        System.out.println(dateType);
        final ArrayList<String> strings = new ArrayList<>(dateType);

        strings.removeAll(list);
        System.out.println("strings:"+strings);
        System.out.println("后dateType:"+dateType);
    }
}

結果:

one:1
one:2
one:3
two:4
two:1
two:2
two:3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM