两个List<String>的集合 求并集
时间: 2024-03-13 07:17:54 浏览: 19
可以使用Java 8中的Stream API来实现两个List<String>的集合求并集,具体的代码如下:
```java
List<String> list1 = Arrays.asList("A", "B", "C");
List<String> list2 = Arrays.asList("C", "D", "E");
List<String> union = Stream.concat(list1.stream(), list2.stream())
.distinct()
.collect(Collectors.toList());
System.out.println(union); // 输出 [A, B, C, D, E]
```
其中,`Stream.concat()`方法将两个List的Stream连接起来,`distinct()`方法去重,最后用`collect(Collectors.toList())`方法将结果转换为List。
相关问题
list<Map>集合内的Map取并集去重
要实现集合内的Map取并集去重,可以按照以下步骤进行:
1. 定义一个新的HashMap用于存放去重后的结果。
2. 遍历集合内的每一个Map对象,获取其中的键值对。
3. 对于每一个键值对,检查新的HashMap中是否已经存在该键,如果不存在,则将该键值对存入新的HashMap中。
4. 如果已经存在该键,则比较该键对应的值是否相等,如果不相等,则将原来的值替换为集合中的新值。
5. 遍历完所有的Map对象后,新的HashMap中就存放了集合内所有Map的并集去重结果。
下面是Java代码示例:
```
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
// 假设list中已经存放了多个Map对象
Map<String, Object> result = new HashMap<String, Object>();
for (Map<String, Object> map : list) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (result.containsKey(key)) {
Object oldValue = result.get(key);
if (!oldValue.equals(value)) {
result.put(key, value);
}
} else {
result.put(key, value);
}
}
}
```
上述代码中,我们通过两层循环遍历了集合内所有的Map对象,依次取出每个Map中的键值对。对于每一个键值对,我们首先检查新的HashMap中是否已经包含该键,如果包含则进行值的比较,否则直接存储该键值对。最终,新的HashMap中就存放了集合内所有Map的并集去重结果。
已知两个集合 List<Integer> list1 = new ArrayList<Integer>(); list1.add(1); list1.add(2); list1.add(3); List<Integer> list2 = new ArrayList<Integer>(); list2.add(2); list2.add(3); list2.add(4); 请通过代码输出 两个集合的交集、并集 list1对list2的补集
你可以使用Java的集合操作来计算两个集合的交集、并集和补集。下面是一段示例代码,可以实现这些操作:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class SetOperations {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<Integer>();
list2.add(2);
list2.add(3);
list2.add(4);
// 交集
List<Integer> intersection = new ArrayList<>(list1);
intersection.retainAll(list2);
System.out.println("交集: " + intersection);
// 并集
Set<Integer> union = new HashSet<>(list1);
union.addAll(list2);
System.out.println("并集: " + union);
// list1对list2的补集
List<Integer> complement = new ArrayList<>(list1);
complement.removeAll(list2);
System.out.println("list1对list2的补集: " + complement);
}
}
```
运行以上代码,你将会得到以下输出:
```
交集: [2, 3]
并集: [1, 2, 3, 4]
list1对list2的补集: [1]
```
这样,你就可以得到两个集合的交集、并集和list1对list2的补集了。希望能对你有所帮助!如果还有其他问题,请继续提问。