collect
将流中的数据,收集到集合(List、Set)中
收集到 List
List<String> list = new ArrayList<>();
Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李小四");
List<String> resList = list.stream()
.filter(item -> item.startsWith("李")) // 过滤姓李的数据
.collect(Collectors.toList()); // 将流中的数据收集到 List 中,并返回该List
for(String item : resList){
System.out.println(item);
}
收集到 Set
List<String> list = new ArrayList<>();
Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李雷");
Set<String> resList = list.stream()
.filter(item -> item.startsWith("李")) // 过滤姓李的数据
.collect(Collectors.toSet()); // 将流中的数据收集到 List 中,并返回该 Set
for(String item : resList){
System.out.println(item);
}
toArray
将流中的数据,收集到数组中
例子 - 返回 Object 数组
注意:只能返回 Object
数组
List<String> list = new ArrayList<>();
Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李小四");
Object[] arr = list.stream()
.filter(item -> item.startsWith("李")) // 过滤姓李的数据
.toArray(); // 将流中的数据收集到 数组 中,并返回该 数组
for(Object item : arr){
System.out.println(item);
}
例子 - 返回 指定类型 的数组
List<String> list = new ArrayList<>();
Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李小四");
String[] arr = list.stream()
.filter(item -> item.startsWith("李")) // 过滤姓李的数据
/*
将流中的数据收集到 数组 中,并返回该 数组
length:表示数组的长度
*/
.toArray( length -> new String[length] );
for(Object item : arr){
System.out.println(item);
}