我有两个不同的列表字符串,
List<String> A= [1,2,3,4];
List<String> B= [1,2,5,6];
我希望在新的列表字符串中组合两个列表 列表C =新的Arraylist();
如何组合两个列表字符串,如示例:
C = [1,2,3,4,5,6];
答案 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#addAll
或Set#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);