java8 stream 流api

拼搏现实的明天。 2023-06-30 02:37 51阅读 0赞

流api 之 filter 方法

说明:用于过滤条件,collect 方法用于将过滤条件获得的流 输出到集合

代码

  1. Stream<T> filter(Predicate<? super T> predicate);

代码分析: 进一步点击 Predicate 类,javadoc 说明该类表示一个谓语词,布尔值类型, 由此说明 filter 中的lambda 表达式最后结果必须是 布尔值类型,符合条件的将被放入该方法返回的结果流中

实例:

  1. public static void main(String[] args) {
  2. List<String> list = new ArrayList<>();
  3. list.add("123");
  4. list.add("121");
  5. list.add("234");
  6. list.add("567567");
  7. list.add("787");
  8. list.add("888");
  9. list.add("999");
  10. list.add("009");
  11. // apache-commons-collection4 用于拆分 list
  12. // List<List<String>> partition = ListUtils.partition(list, 2);
  13. // for (List<String> li: partition ) {
  14. // System.out.println(li.toString());
  15. // }
  16. String str = "abc";
  17. List<String> collect = list.stream().filter(x -> x.contains("1")).collect(Collectors.toList());
  18. System.out.println(collect.toString());
  19. }

输出结果:

  1. [123, 121]

流api 之map方法

代码

  1. <R> Stream<R> map(Function<? super T, ? extends R> mapper);

代码说明:根据Function 的javadoc 说明得知 : Function类 表示接受一个参数并产生结果的函数。这是一个函数接口,它的函数方法是apply(Object)。,因此该类我们可用于对传入集合进行处理,最后返回一个参数的lambda 表达式

实例:

  1. public static class User{
  2. private String account;
  3. private String icon;
  4. public String getAccount() {
  5. return account;
  6. }
  7. public void setAccount(String account) {
  8. this.account = account;
  9. }
  10. public String getIcon() {
  11. return icon;
  12. }
  13. public void setIcon(String icon) {
  14. this.icon = icon;
  15. }
  16. public User(String account, String icon) {
  17. this.account = account;
  18. this.icon = icon;
  19. }
  20. }
  21. public static void main(String[] args) {
  22. List<User> userList = new ArrayList<>();
  23. userList.add(new User("kk1235","1"));
  24. userList.add(new User("kk1236","3"));
  25. userList.add(new User("kkwwww","4"));
  26. userList.add(new User("kk1238","9"));
  27. List<String> collect = userList.stream().map(x -> x.getAccount()).collect(Collectors.toList());
  28. System.out.println(collect);
  29. }

结果输出:

  1. [kk1235, kk1236, kkwwww, kk1238]

发表评论

表情:
评论列表 (有 0 条评论,51人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java8 Stream API总结

    Stream API 1.集合处理数据的弊端   当我们在需要对集合中的元素进行操作的时候,除了必需的添加,删除,获取外,最典型的操作就是集合遍历, pa

    相关 java8(Stream API)概述

    流(Stream)是java8引入的重磅api,使用它可以替换大部分集合操作,重要的是,流相对集合来说更简洁易读、更灵活,性能也更好。 集合操作的痛点 动不动就要遍历