没有合适的资源?快使用搜索试试~ 我知道了~
关于stream的总结
资源推荐
资源详情
资源评论
Stream
lzzx
Collect收集
toList
toMap
counting
summingInt
joining
groupingBy
创建方式
Stream创建
Stream<Integer> stream1 = Stream.of(1,2,3,4,5);
Collection集合创建
List<Integer> integerList = new ArrayList<>();
integerList.add(1);
integerList.add(2);
integerList.add(3);
integerList.add(4);
integerList.add(5);
Stream<Integer> listStream = integerList.stream();
Array数组创建
int[] intArr = {1, 2, 3, 4, 5};
IntStream arrayStream = Arrays.stream(intArr);
文件创建
try {
Stream<String> fileStream = Files.lines(Paths.get("data.txt"), Charset.defaultCharset());
} catch (IOException e) {
e.printStackTrace();
}
函数创建
iterator Stream<Integer> iterateStream = Stream.iterate(0, n -> n + 2).limit(5);
generator Stream<Double> generateStream = Stream.generate(Math::random).limit(5);
操作符
中间操作符
filter
用于通过设置的条件过滤出元素
List strings = Arrays.asList(“abc”, “”, “bc”, “efg”, “abcd”,"", “jkl”);
List filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
map
接受一个函数作为参数。这个函数会被应用到每
个元素上,并将其映射成一个新的元素
List strings = Arrays.asList(“abc”, “abc”, “bc”, “efg”, “abcd”,“jkl”, “jkl”);
List mapped = strings.stream().map(str->str+"-IT").collect(Collectors.toList());
distinct
用于去除流中的重复元素。根据流所生成元素的
hashCode和equals方法实现
List numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4);
numbers.stream().filter(i -> i % 2 == 0).distinct().forEach(System.out::println);
sorted
返回排序后的流
List<Person> people = Arrays.asList(
new Person(30, "Alice"),
new Person(25, "Bob"),
new Person(30, "Charlie"),
new Person(25, "David")
);
List<Person> sortedPeople = people.stream()
.sorted(Comparator.comparing(Person::getAge)
.thenComparing(Comparator.comparing(Person::getName).reversed()))
.collect(Collectors.toList());
limit
会返回一个不超过给定长度的流
List strings = Arrays.asList(“abc”, “abc”, “bc”, “efg”, “abcd”,“jkl”, “jkl”);
List limited = strings.stream().limit(3).collect(Collectors.toList());
skip
返回一个扔掉了前n个元素的流
List strings = Arrays.asList(“abc”, “abc”, “bc”, “efg”, “abcd”,“jkl”, “jkl”);
List skiped = strings.stream().skip(3).collect(Collectors.toList());
flatMap
peek
对元素进行遍历处理
userList.stream().peek(user -> user.setId(user.getId()+1)).forEach(System.out::println);
终端操作符
collect
收集器,将流转换为其他形式
forEach
遍历流
findFirst
返回第一个元素
findAny
将返回当前流中的任意元素
count
返回流中元素总数
sum
求和
max
最大值
min
最小值
anyMatch
检查是否至少匹配一个元素,返回boolean
allMatch
检查是否匹配所有元素,返回boolean
noneMatch
检查是否没有匹配所有元素,返回boolean
reduce
可以将流中元素反复结合起来,得到一个值
资源评论
lz_zy
- 粉丝: 46
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功