zoukankan      html  css  js  c++  java
  • 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));
  • 相关阅读:
    分层领域模型
    JAVA集合Set 交集、差集、并集
    http状态码301和302详解及区别
    设计模式(16) 命令模式
    设计模式(15) 解释器模式
    设计模式(14) 模板方法模式
    设计模式(13) 职责链模式
    设计模式(12) 代理模式
    设计模式(11) 享元模式
    设计模式(10) 外观模式
  • 原文地址:https://www.cnblogs.com/youcong/p/14015620.html
Copyright © 2011-2022 走看看