java使用lambda表达式对List集合进行操作(JDK1.8)

  1. import java.util.ArrayList;
  2.  
    import java.util.List;
  3.  
    import java.util.function.Predicate;
  4.  
    import java.util.stream.Collectors;
  5.  
     
  6.  
     
  7.  
    public class LambdaStudy
  8.  
    {
  9.  
    public static void main(String[] args) {
  10.  
     
  11.  
    //初始化list集合
  12.  
    List<String> list = new ArrayList<String>();
  13.  
    list.add("测试数据1");
  14.  
    list.add("测试数据2");
  15.  
    list.add("测试数据3");
  16.  
    list.add("测试数据12");
  17.  
     
  18.  
    //使用λ表达式遍历集合
  19.  
    list.forEach(s -> System.out.println(s));
  20.  
     
  21.  
    //结合Predicate使用和过滤条件筛选元素
  22.  
    Predicate<String> contain1 = n -> n.contains("1");
  23.  
    Predicate<String> contain2 = n -> n.contains("2");
  24.  
     
  25.  
    //根据条件遍历集合
  26.  
    list.stream().filter(contain1).forEach(n -> System.out.println(n));
  27.  
    list.stream().filter(s -> contain1.test(s)).forEach(s -> System.out.println(s));
  28.  
    list.stream().filter(contain1.and(contain2)).forEach(n -> System.out.println(n));
  29.  
    list.stream().filter(contain1.or(contain2)).forEach(n -> System.out.println(n));
  30.  
     
  31.  
    //将过滤后的元素重新放到一个集合中
  32.  
    List<String> newList = list.stream().filter(contain1.and(contain2)).collect(Collectors.toList());
  33.  
     
  34.  
    newList.forEach(s -> System.out.println(s));
  35.  
     
  36.  
    }
  37.  
    }

 

posted @   疯子110  阅读(2774)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
历史上的今天:
2018-11-26 C#软件授权、注册、加密、解密模块源码解析并制作注册机生成license
2015-11-26 jQuery EasyUI combobox多选及赋值
点击右上角即可分享
微信分享提示