我有两个列表:
list_1 = [1, 2, 3, 4, 5]
list_2 = [1, 3, 5, 6, 7]
我想要这样的列表:
list_3 = [1, 2, 3, 4, 5, 6, 7]
谢谢,不需要按升序排序。
答案 0 :(得分:1)
您可以使用union
运算符执行以下操作
fun temp()
{
val firstList = arrayListOf(1,2,3,4,5)
val secondList = arrayListOf(1,3,5,6,7)
val finalList = firstList.union(secondList)
println("First list : ${firstList}")
println("Second list : ${secondList}")
println("Final list : ${finalList}")
}
在secondList
中包含公用元素1,3 and 5
作为firstList
,已在finalList
中将其删除。您还可以根据需要使用distinct
运算符。
答案 1 :(得分:0)
如果我的理解正确,那么您希望从两个列表中都输入条目,但是它们只能出现一次。我从您的上一次声明中假设顺序无关紧要。在这种情况下,这对于Set是完美的。 Set是Collection,因此您可以像使用List一样遍历所有元素。
编辑
代码段:
Integer[] a = {1,2,3};
Integer[] b = {2,3,4};
Set<Integer> s = new HashSet<>();
s.addAll(Arrays.asList(a));
s.addAll(Arrays.asList(b));
for (int i : s) {
System.out.print(i + ", ");
}
System.out.println();
如果您的整数已经在基本数组中:
int[] c = {1,2,3};
int[] d = {2,3,4};
Set<Integer> S = new HashSet<>();
S.addAll(Arrays.asList(Arrays.stream(c).boxed().toArray(Integer[]::new)));
S.addAll(Arrays.asList(Arrays.stream(d).boxed().toArray(Integer[]::new)));
for (int i : S) {
System.out.print(i + ", ");
}
System.out.println();
对于这两者,输出为:
1, 2, 3, 4,