java8 stream 流api
流api 之 filter 方法
说明:用于过滤条件,collect 方法用于将过滤条件获得的流 输出到集合
代码
Stream<T> filter(Predicate<? super T> predicate);
代码分析: 进一步点击 Predicate 类,javadoc 说明该类表示一个谓语词,布尔值类型, 由此说明 filter 中的lambda 表达式最后结果必须是 布尔值类型,符合条件的将被放入该方法返回的结果流中
实例:
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("123");
list.add("121");
list.add("234");
list.add("567567");
list.add("787");
list.add("888");
list.add("999");
list.add("009");
// apache-commons-collection4 用于拆分 list
// List<List<String>> partition = ListUtils.partition(list, 2);
// for (List<String> li: partition ) {
// System.out.println(li.toString());
// }
String str = "abc";
List<String> collect = list.stream().filter(x -> x.contains("1")).collect(Collectors.toList());
System.out.println(collect.toString());
}
输出结果:
[123, 121]
流api 之map方法
代码
<R> Stream<R> map(Function<? super T, ? extends R> mapper);
代码说明:根据Function 的javadoc 说明得知 : Function类 表示接受一个参数并产生结果的函数。这是一个函数接口,它的函数方法是apply(Object)。,因此该类我们可用于对传入集合进行处理,最后返回一个参数的lambda 表达式
实例:
public static class User{
private String account;
private String icon;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public User(String account, String icon) {
this.account = account;
this.icon = icon;
}
}
public static void main(String[] args) {
List<User> userList = new ArrayList<>();
userList.add(new User("kk1235","1"));
userList.add(new User("kk1236","3"));
userList.add(new User("kkwwww","4"));
userList.add(new User("kk1238","9"));
List<String> collect = userList.stream().map(x -> x.getAccount()).collect(Collectors.toList());
System.out.println(collect);
}
结果输出:
[kk1235, kk1236, kkwwww, kk1238]
还没有评论,来说两句吧...