我有两个不同的列表字符串,
List<String> A= [1,2,3,4];
List<String> B= [1,2,5,6];
我希望将两个列表合并成一个新的字符串列表,代码如下:
List C = new ArrayList();
合并两个字符串列表的方法如下所示:
C = [1,2,3,4,5,6];
我有两个不同的列表字符串,
List<String> A= [1,2,3,4];
List<String> B= [1,2,5,6];
我希望将两个列表合并成一个新的字符串列表,代码如下:
List C = new ArrayList();
合并两个字符串列表的方法如下所示:
C = [1,2,3,4,5,6];
使用 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
这样做:
listOne.removeAll(listTwo);
listTwo.addAll(listOne);
Collections.sort(listTwo);
combined = new ArrayList<String>();
combined.addAll(A);
combined.addAll(B);
List<String> uniques = new ArrayList<String>(new HashSet<String>(combined));
合并这两个列表的方法有两种:使用 List#addAll
或 Set#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);
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));
TreeSet
维护数据的有序性,而非排序。LinkedHashSet
维护数据的顺序性,但不保证有序。 - Luiggi MendozaList<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);
声明 A 和 B 的方式似乎有误。
然而,如果要将两个列表 A 和 B 合并成 C,您可以使用以下代码: C.addAll(A); C.addAll(B);
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);