抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

最近在写minecraft服务器的插件,过程中了解了更多Java的Stream流知识,总结在此

集合的分类

当我们相对一个集合通过某条件进行分类时,多数情况下用for循环,要么会想到用两个Stream流
其实有更简单的方法,执行一次Stream流即可

//原数组
List<String> A = Arrays.asList("Tom","Jack","John","Mike");

//按条件拆分数组
Map<Boolean, List<String>> listMap = A.stream()
.collect(Collectors.groupingBy(i -> i.contains("J")));

//满足条件的
List<String> B=listMap.get(true);

//不满足条件的
List<String> C=listMap.get(false);

注意:groupingBy()返回的List<String>可能为null

集合的创建

创建一个整数序列

创建一个序列在Python一类的编程语言中比较简单,调用对应方法即可
但在Java中除了for自己循环创建以外,还可以使用Stream流来操作

//返回一个包含{0,1,2,3,4,5}的List<Integer>集合
IntStream.rangeClosed(0,5).boxed().toList()

range(int start, int end)不包含end
rangeClosed(int start, int end)包含end

评论