Java8 List通用方法处理总结

总结项目里使用Java8新特性对List的数据处理(用的比较多的)。

一、分组

Map<String, List<T>> yearData = allData.stream().collect(Collectors.groupingBy(T::getYear));

二、条件筛选

单条件筛选

List<T> filterList = appleList.stream().filter(a -> a.getName().equals("YC")).collect(Collectors.toList());

多条件筛选

List<T> filterList = dayVoList.
                      stream().filter(a -> a.getYEAR().equals(item)).collect(Collectors.toList())
                      .stream().filter(a -> a.getPrice() != "0" && a.getPrice() != "0.0").collect(Collectors.toList());

三、List合并

1.合并去重

List<String> result = Stream.of(Lists.newArrayList("A", "B", "C"), Lists.newArrayList("A", "B"))
  .flatMap(Collection::stream).distinct().collect(Collectors.toList());

 

1.合并不去重

List<String> result = Stream.of(Lists.newArrayList("A", "B", "C"), Lists.newArrayList("A", "B"))
  .flatMap(Collection::stream).collect(Collectors.toList());

四、List排序

1.倒序

List<T> api_list = apiData
               .stream().sorted(Comparator.comparing(T::getID).reversed()).collect(Collectors.toList());

2.正序

List<T> api_list = apiData
               .stream().sorted(Comparator.comparing(T::getID).collect(Collectors.toList());

五、List 数据去重

List<T> primaryFilterData = apiData.stream().collect(
               Collectors.collectingAndThen(
                       Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(T::getName))), ArrayList::new));

 

posted @   挑战者V  阅读(1028)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2017-11-21 Linux系统学习之软件安装
点击右上角即可分享
微信分享提示