美文网首页
java8 List常用操作

java8 List常用操作

作者: 璟_cb72 | 来源:发表于2020-08-31 16:49 被阅读0次

    参考至https://blog.csdn.net/qq_42080073/article/details/105610916
    本次项目较多的用到这几种操作,记录一下。

    public class User(){
        private String name;
        private long age;
      //getter...setter... 全参构造器... 无参构造器
    }
    
    List<User> list = new ArrayList<>();
    list.add(new User("u1", 23));
    list.add(new User("u2", 43));
    list.add(new User("u3", 11));
    list.add(new User("u4", 32));
    

    List排序

    //正序排序
    List<User> sortUser = 
    list.stream().sorted(Comparator.comparingLong(User::getAge))
    .collect(Collectors.toList());
    //倒序排序  reversed()
    List<User> reverseUser = 
    list.stream().sorted(Comparator.comparingLong(User::getAge).reversed())
    .collect(Collectors.toList());
    

    List过滤

    //主要方法:filter()
    List<User> users = list.stream().filter(user -> user.getAge() > 20).collect(Collectors.toList());
    

    根据对象的某个属性求和

    //主要方法:mapToInt(),mapToDouble(),mapToLong(),sum()
    long sum = list.stream().mapToLong(User::getAge).sum();
    

    根据集合生成新的list集合

    // 获取 users 集合中的 id 集合 
    List<Long> ids = users.stream().map(User::getAge).collect(Collectors.toList()); 
     
    // 获取 users 集合中的 id 集合并转为字符串, 通过 , 拼接 
    String idsTxt = users.stream().map(User::getAge).map(String::valueOf)
            .collect(Collectors.joining(","));
    

    根据对象属性分组

    //主要方法:Collectors.groupingBy()
    Map<Integer, List<User>> groupByUserAge = list.stream()
            .collect(Collectors.groupingBy(list::getAge));
    

    相关文章

      网友评论

          本文标题:java8 List常用操作

          本文链接:https://www.haomeiwen.com/subject/tfiusktx.html