ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 3.2.2 终端操作 - **forEach**:对流中的每个元素应用传入的Lambda表达式 - **count**:返回流中元素的个数(long类型) - **collect**:把流归约成一个集合,例如List、Map等 **3. 在控制台打印DATA** ```java /* 在控制台打印DATA */ DATA.stream().forEach(System.out::print); /* ABCDEFG */ ``` **4. 如何先按照success进行分组,再按照type进行分组,统计元素数量呢?** (返回类型为`Map<Boolean, Map<Integer, Integer>>`) 实际上,例1中的代码段: ```java Map<Boolean, Map<Integer, List<Model>>> countMap = DATA.stream() .collect(Collectors.groupingBy(Model::getSuccess, Collectors.groupingBy(Model::getType))); ``` 等价于: ```java Map<Boolean, Map<Integer, List<Model>>> groupMap = DATA.stream() .collect(Collectors.groupingBy(Model::getSuccess, Collectors.groupingBy(Model::getType,Collectors.toList()))); ``` 因此如果需要计数,只需改成: ```java Map<Boolean, Map<Integer, Long>> countMap = DATA.stream() .collect(Collectors.groupingBy(Model::getSuccess, Collectors.groupingBy(Model::getType, Collectors.counting()))); ```