java. list 去除list交集
时间: 2023-11-15 11:00:11 浏览: 124
要去除Java List中的交集,可以使用retainAll()方法和removeAll()方法。retainAll()方法将保留两个列表中都存在的元素,而removeAll()方法将删除两个列表中都存在的元素。因此,我们可以使用removeAll()方法来去除交集。
下面是一个示例代码:
```
List<String> list1 = new ArrayList<>(Arrays.asList("a", "b", "c", "d"));
List<String> list2 = new ArrayList<>(Arrays.asList("c", "d", "e", "f"));
list1.removeAll(list2); // 去除交集
System.out.println(list1); // 输出 [a, b]
```
在这个示例中,我们创建了两个列表list1和list2,它们都包含一些元素。然后,我们使用removeAll()方法从list1中去除了与list2中相同的元素,最后输出了list1的内容。
相关问题
java List集合去掉另一个List集合的交集部分
可以使用Java 8的Stream API来实现这个功能。具体步骤如下:
1. 将第二个List集合转换为Set集合,提高查找效率。
2. 使用stream()方法将第一个List集合转换成流。
3. 使用filter()方法过滤出不包含第二个List集合中元素的元素。
4. 使用collect()方法将流转换回List集合。
下面是代码示例:
```java
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 4, 5, 6, 7));
Set<Integer> set2 = new HashSet<>(list2); // 转换为Set集合
List<Integer> result = list1.stream()
.filter(item -> !set2.contains(item)) // 过滤掉第二个List集合中的元素
.collect(Collectors.toList()); // 转换回List集合
System.out.println(result); // 输出 [1, 2]
```
这段代码输出的结果是一个List集合,其中包含第一个List集合去掉第二个List集合中元素后的剩余元素。
用python语句编写一个能找出两段英文文本中同时出现的单词的小程序。输入两段英文文本,可以输出两段文本中同时出现的单词。假定所有的标点符号和单词之间都有一个空格。 要求去掉常见标点符号(逗号,句号,引号,省略号,冒号,分号等)。 为了使结果唯一,把集合转换为列表,并对元素进行升序排序。测试输入: I like python . You like java . 预期输出: {'like'}
以下是使用 Python 编写的程序,可以找出两段英文文本中同时出现的单词:
```python
import string
def find_common_words(text1, text2):
# 去除标点符号
text1 = text1.translate(str.maketrans('', '', string.punctuation))
text2 = text2.translate(str.maketrans('', '', string.punctuation))
# 转换为集合
words1 = set(text1.lower().split())
words2 = set(text2.lower().split())
# 找出共同单词
common_words = sorted(list(words1 & words2))
return common_words
text1 = "I like python ."
text2 = "You like java ."
common_words = find_common_words(text1, text2)
print(common_words)
```
输出结果为:
```
['like']
```
该程序先使用 `string` 模块中的 `punctuation` 字符串去除两段文本中的标点符号,然后分别将文本转换为单词的集合,最后求两个集合的交集,得到共同的单词列表。为了使结果唯一,对列表进行升序排序。
阅读全文