如何将两个列表字符串组合成一个列表

时间:2012-12-24 09:56:08

标签: java list collections

我有两个不同的列表字符串,

List<String> A= [1,2,3,4]; 
List<String> B= [1,2,5,6]; 

我希望在新的列表字符串中组合两个列表     列表C =新的Arraylist();

如何组合两个列表字符串,如示例:

    C = [1,2,3,4,5,6];

8 个答案:

答案 0 :(得分:4)

使用Collection.addAll()TreeSet删除重复项并保持结果排序。

Set<String> c = new TreeSet<String>(a); //create a Set with all the elements in a
c.addAll(b); //add all the elements in b

答案 1 :(得分:3)

这将使他们合并

combined = new ArrayList<String>();
combined.addAll(A);
combined.addAll(B);

这将获得独特的

List<String> uniques = new ArrayList<String>(new HashSet<String>(combined));

答案 2 :(得分:3)

这样做:

listOne.removeAll(listTwo);
listTwo.addAll(listOne);
Collections.sort(listTwo);

如果您不想对第三行进行排序,则可以删除第三行。

答案 3 :(得分:0)

有两种方法可以合并两个列表的结果:使用List#addAllSet#addAll。这两者之间的主要区别在于:What is the difference between Set and List?

根据您的请求,您应合并两个列表,而不使用Set

重复项目
List<String> lstA = new ArrayList<String>();
lstA.add("1");
lstA.add("2");
lstA.add("3");
lstA.add("4");
List<String> lstB = new ArrayList<String>();
lstA.add("1");
lstA.add("2");
lstA.add("5");
lstA.add("6");
Set<String> lstC = new LinkedHashSet<String>();
lstC.addAll(A);
lstC.addAll(B);
List<String> lstAB = new ArrayList(lstC);

答案 4 :(得分:0)

A和B的声明似乎是错误的。

但是,给定两个列表A和B,要将它们组合成C,您可以使用以下代码: C.addAll(A); C.addAll(B);

答案 5 :(得分:0)

List<String> A= new ArrayList<String>();
List<String> B= new ArrayList<String>();

Set<String> set = new TreeSet<String>(A);
set.addAll(B);
System.out.println(new ArrayList<String>(set));

答案 6 :(得分:0)

  Set<String> set = new TreeSet<String>(A); // for keeping the output sorted else you can also use java.util.HashSet
  set.addAll(B);
  List<String> finalList = new ArrayList<String>(set);

答案 7 :(得分:0)

要按排序顺序获取List<String>,请使用此段代码

    String a[] = {"1","2","3","4"};
    String b[] = {"1","2","5","6"};
    List<String> A= Arrays.asList(a); 
    List<String> B= Arrays.asList(b); 

    Set<String> CTemp = new TreeSet<>();  
    CTemp.addAll(A);
    CTemp.addAll(B);

    List<String> C = new ArrayList<>(CTemp);