3

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

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

我想合并两个列表,在列表中的新列表字符串 C = new Arraylist ();

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

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

8 回答 8

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
于 2012-12-24T09:57:34.857 回答
3

这将使它们结合在一起

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

这将获得唯一的

List<String> uniques = new ArrayList<String>(new HashSet<String>(combined));
于 2012-12-24T09:58:33.097 回答
3

像这样做 :

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

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

于 2012-12-24T10:27:13.827 回答
0

有两种方法可以合并两个列表的结果:使用List#addAllSet#addAll。两者之间的主要区别在这里进行了大量解释:Set 和 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);
于 2012-12-24T09:57:26.507 回答
0

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

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

于 2012-12-24T09:59:12.283 回答
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));
于 2012-12-24T10:00:58.643 回答
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);
于 2012-12-24T10:02:07.993 回答
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);
于 2012-12-24T10:08:22.610 回答