java如何比较两个list是不是有重复
时间: 2023-08-22 16:08:28 浏览: 123
可以使用 Java 中的 containsAll() 方法来比较两个 List 是否有重复元素。containsAll() 方法用于判断一个 List 是否包含另一个 List 中的所有元素。
具体步骤如下:
1. 首先将两个 List 转换为 Set,这样可以去重。
2. 使用 Set 的 containsAll() 方法判断两个 Set 是否有重复元素。
示例代码如下:
```
List<String> list1 = new ArrayList<>();
list1.add("a");
list1.add("b");
list1.add("c");
List<String> list2 = new ArrayList<>();
list2.add("b");
list2.add("d");
list2.add("e");
Set<String> set1 = new HashSet<>(list1);
Set<String> set2 = new HashSet<>(list2);
if (set1.containsAll(set2)) {
System.out.println("两个 List 存在重复元素");
} else {
System.out.println("两个 List 不存在重复元素");
}
```
输出结果为:两个 List 不存在重复元素
如果将 list2 的元素改为 "b", "c",则输出结果为:两个 List 存在重复元素
相关问题
java 去除两个list中重复元素
可以使用Java 8中的Stream API来实现这个功能。具体步骤如下:
1. 将两个List合并成一个新的List
2. 使用stream()方法获取流对象
3. 使用distinct()方法去除重复元素
4. 使用collect()方法将流转换回List对象
示例代码如下:
```java
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(2, 3, 4);
List<Integer> result = Stream.concat(list1.stream(), list2.stream())
.distinct()
.collect(Collectors.toList());
System.out.println(result);
```
输出结果为:[1, 2, 3, 4]
上述代码将两个List中的元素合并,然后去除重复元素,最后返回一个新的List对象。
java获取两个list集合中重复得内容
您可以使用Java 8中的stream和filter方法,结合使用Collection的retainAll方法来获取两个List集合中的重复元素。
示例代码:
```java
List<String> list1 = new ArrayList<>(Arrays.asList("a", "b", "c"));
List<String> list2 = new ArrayList<>(Arrays.asList("b", "c", "d"));
list1.retainAll(list2); // 仅保留list1和list2中相同的元素
System.out.println(list1); // 输出结果为 [b, c]
```
上述代码将输出list1和list2中相同的元素,即[b,c]。
希望我的回答能对您有所帮助!