Java stream 写 list a 中查找 list b 相同的元素再计算在 list c 中元素的个数
时间: 2024-03-02 15:47:50 浏览: 155
可以使用 Java 8 中的 Stream API 来实现查找 list b 中相同元素并计算在 list c 中的数量。具体实现步骤如下:
1. 使用 stream() 方法将 list b 转换成 Stream。
2. 使用 filter() 方法过滤出在 list a 中存在的元素。
3. 使用 filter() 方法过滤出在 list c 中存在的元素。
4. 使用 count() 方法统计元素个数。
下面是示例代码:
```java
List<Integer> listA = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> listB = Arrays.asList(2, 4, 6, 8);
List<Integer> listC = Arrays.asList(2, 4, 6, 8, 10, 12, 14, 16);
long count = listB.stream()
.filter(num -> listA.contains(num))
.filter(num -> listC.contains(num))
.count();
System.out.println("list b 中在 list c 中相同元素的数量为:" + count);
```
输出结果为:
```
list b 中在 list c 中相同元素的数量为:2
```
注:以上代码仅为示例,实际应用中应根据具体需求做出相应的调整。
相关问题
stream手机list中相同值的个数
要统计一个 List 中相同值的个数,你可以使用 stream API 的 groupBy 和 counting 方法来实现。下面是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 2, 4, 3, 5, 1, 2);
Map<Integer, Long> countMap = list.stream()
.collect(Collectors.groupingBy(i -> i, Collectors.counting()));
System.out.println(countMap);
}
}
```
运行以上代码,输出结果为 `{1=2, 2=3, 3=2, 4=1, 5=1}`。其中,key 表示 List 中的元素值,value 表示该元素值在 List 中出现的次数。
在代码中,我们使用 `Collectors.groupingBy()` 方法将 List 中的元素按照其值进行分组,然后使用 `Collectors.counting()` 方法对每个分组中的元素进行计数。最后,我们得到一个 Map,其中包含了每个值及其对应的出现次数。
java 中 统计list中list的个数
如果你想统计一个`List`中包含多少个`List`,可以使用Java 8中的`stream`和`flatMap`方法来实现。具体实现如下:
```java
List<List<Integer>> myList = new ArrayList<>();
myList.add(Arrays.asList(1, 2, 3));
myList.add(Arrays.asList(4, 5, 6));
myList.add(Arrays.asList(7, 8, 9));
long count = myList.stream().flatMap(List::stream).count();
System.out.println(count);
```
这段代码中,我们创建了一个包含三个`List`对象的`List`,每个内部的`List`包含三个整数。我们通过`stream`方法将外部`List`转换为`Stream`,然后使用`flatMap`方法将每个内部的`List`转换为单个的流。最后,我们使用`count`方法统计所有元素的个数,包括内部`List`的元素。在这个例子中,输出结果是9,即三个内部`List`中总共有9个元素。
阅读全文