java 判定两个都不为空的集合,进行元素比较过滤
时间: 2023-02-11 22:47:04 浏览: 244
可以使用Java 8中的Stream API中的intersection()方法来实现。示例代码如下:
```
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3));
Set<Integer> set2 = new HashSet<>(Arrays.asList(3, 4, 5));
Set<Integer> intersection = set1.stream()
.filter(set2::contains)
.collect(Collectors.toSet());
```
这段代码会返回set1和set2中共同的元素的集合(即交集)。
相关问题
java 判定两个都不为空的List集合,进行元素比较,一样的就过滤
可以使用 Java 的 retainAll() 方法来实现,它会在原集合中保留与另一个集合中相同的元素。示例代码如下:
```
List<Integer> list1 = Arrays.asList(1, 2, 3, 4);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6);
list1.retainAll(list2);
System.out.println(list1); // 输出 [3, 4]
```
上述代码中,list1 和 list2 是两个 List,list1.retainAll(list2) 会在 list1 中保留与 list2 中相同的元素,也就是 3 和 4。
在这之前,需要判断两个list是否都不为空。
```
if(list1 != null && list2 != null){
list1.retainAll(list2);
System.out.println(list1);
}
```
集合的boolean用法
在Java中,集合(如List、Set等)的 boolean 类型用法主要有两个方面:
1. **判断元素是否存在**:通过 `contains()` 或 `containsAll()` 方法,可以检查一个集合是否包含某个特定的元素或所有指定的元素,这两个方法都返回布尔值。例如:
```java
List<String> list = ...;
boolean containsElement = list.contains("an element");
```
2. **迭代器的判定**:当使用增强for循环遍历集合时,`Iterator` 的 `hasNext()` 方法会返回一个布尔值,表示下一次迭代是否有下一个元素。
3. **条件判断和过滤操作**:在遍历集合时,你可以基于每个元素的状态执行某些操作,比如 `if (collection.contains(element)) {...}`。
4. **集合操作的结果验证**:像 `isEmpty()` 和 `size() > 0` 等方法,用于检查集合的空状态或者长度是否大于零,这些都是布尔值的结果。
阅读全文