java将两个list集合合并并去重
时间: 2023-09-12 22:11:29 浏览: 222
你好,你可以使用Java 8中的Stream API来实现这个需求。以下是示例代码:
```
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(2, 3, 4);
List<Integer> mergedList = Stream.concat(list1.stream(), list2.stream())
.distinct()
.collect(Collectors.toList());
System.out.println(mergedList); // Output: [1, 2, 3, 4]
```
此代码将list1和list2合并成一个新列表mergedList,并去除了其中的重复项。您可以根据您的需求修改代码中的List类型和元素类型。
相关问题
java list集合合并并去重
在Java中,要将两个List集合合并并去重,可以使用以下步骤:
1. 创建一个新的ArrayList对象,用于存储合并后的结果。
2. 将第一个List集合的所有元素添加到新的ArrayList中。
3. 使用循环遍历第二个List集合的每个元素,判断是否已经存在于新的ArrayList中,如果不存在则添加到新的ArrayList中。
4. 最后,新的ArrayList中就包含了合并并去重后的结果。
下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>();
list2.add(3);
list2.add(4);
list2.add(5);
List<Integer> mergedList = new ArrayList<>(list1); // 复制list1到新的ArrayList
for (Integer num : list2) {
if (!mergedList.contains(num)) {
mergedList.add(num);
}
}
System.out.println(mergedList);
}
}
```
输出结果将会是 `[1, 2, 3, 4, 5]`。请注意,这种方法会保持原始顺序,并且不会修改原始列表。
java两个list集合去重合并
在Java中,将两个List集合去重并合并,可以采用多种方法。这里提供一种基于Set数据结构的方式:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public List<String> mergeAndRemoveDuplicates(List<String> list1, List<String> list2) {
// 将两个列表转换为HashSet去除重复元素
HashSet<String> set = new HashSet<>(list1);
set.addAll(list2);
// 再将Set转换回ArrayList
List<String> result = new ArrayList<>(set);
return result;
}
```
这个方法首先创建一个HashSet,因为HashSet不允许有重复元素,所以它会自动去除列表中的重复项。然后将两个列表都添加到Set中,再将Set转换回ArrayList,得到的就是合并后的去重列表。
如果你想保留原列表的顺序,可以使用LinkedHashSet,因为它维护元素插入的顺序:
```java
List<String> merged = new ArrayList<>();
merged.addAll(list1); // 先添加list1保持原始顺序
merged.addAll(set); // 添加去重后的元素
return merged;
```
阅读全文