如何在 java 中将一个列表项替换为另一个列表项?

How replace one list items with another in java?

我有两个数组列表,能否用第二个列表替换第一个列表项。

ArrayList<String> a = new ArrayList<String>();
ArrayList<String> b = new ArrayList<String>();
a.add("testone");
a.add("testtwo");
a.add("testthree");
b.add("demoone");
b.add("demotwo");
System.out.println("List values are: "+ a);

有没有办法用第二个列表元素替换第一个列表。所以如果我打印第一个数组列表,它应该打印以下输出

[demoone, demotwo] 

最简单的方法是将列表 b 分配给列表 a

a=b

我猜你需要:

a = b;
System.out.println("List values are: "+ a);

选项 1:

a = b; //copy same list reference

选项 2:

a.clear(); //clear all existing items
a.addAll(b); //copy all

选项 3:

a = (ArrayList<String>)b.clone(); //shallow copy

因此根据需要有两种方法可以做到这一点。

  1. 您需要引用变量 b 引用的列表才能与引用变量 a 一起使用。在这种情况下,不需要修改 a 引用的原始列表,只需将引用变量 a 指向第二个列表(最初由引用变量 b 引用)。

    a = b;
    System.out.println("List values are: "+ a);
    
  2. 您需要引用变量 a 引用的列表才能使 b 引用的列表中出现项目。在这种情况下,必须修改 a 最初引用的实际列表。当您将列表传递给应该修改列表的方法时,可能需要这样做。

    a.clear();
    a.addAll(b);
    System.out.println("List values are: "+ a);