list stream:过滤对象中的元素(filter)并进行排序(sorted)

特定要求

采用并行模式<parallelStream>从集合中筛选<filter>特定班级的学生,并且将该部分特定学生通过年龄<Comparator.comparing>来进行排序<sorted>,将排序好的学生的ID<map>放到一个新的集合中<collect>

按年龄升序

package com.example.starter;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

public class TestStream {
  public static void main(String[] args) {

    List<User> userList = new ArrayList<>();
    User userOne = new User();
    userOne.setId(1L);
    userOne.setAge(5);
    userOne.setClasses("3年2班");

    User userTwo = new User();
    userTwo.setId(2L);
    userTwo.setAge(10);
    userTwo.setClasses("4年3班");

    User userThree = new User();
    userThree.setId(3L);
    userThree.setAge(8);
    userThree.setClasses("3年2班");

    User userFour = new User();
    userFour.setId(4L);
    userFour.setAge(6);
    userFour.setClasses("3年2班");

    userList.add(userOne);
    userList.add(userTwo);
    userList.add(userThree);
    userList.add(userFour);

    List<Long> userIdList = userList.parallelStream().filter(u -> "3年2班".equals(u.getClasses())).sorted(Comparator.comparing(User::getAge)).map(User::getId).collect(Collectors.toList());
    System.out.println("升序 : " + userIdList);


  }



}
class User {
  //ID
  private Long id;
  //年龄
  private int age;
  //班级
  private String classes;

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  public String getClasses() {
    return classes;
  }

  public void setClasses(String classes) {
    this.classes = classes;
  }
}

按年龄降序

package com.example.starter;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

public class TestStream {
  public static void main(String[] args) {

    List<User> userList = new ArrayList<>();
    User userOne = new User();
    userOne.setId(1L);
    userOne.setAge(5);
    userOne.setClasses("3年2班");

    User userTwo = new User();
    userTwo.setId(2L);
    userTwo.setAge(10);
    userTwo.setClasses("4年3班");

    User userThree = new User();
    userThree.setId(3L);
    userThree.setAge(8);
    userThree.setClasses("3年2班");

    User userFour = new User();
    userFour.setId(4L);
    userFour.setAge(6);
    userFour.setClasses("3年2班");

    userList.add(userOne);
    userList.add(userTwo);
    userList.add(userThree);
    userList.add(userFour);

    List<Long> userIdList = userList.parallelStream().filter(u -> "3年2班".equals(u.getClasses())).sorted(Comparator.comparing(User::getAge).reversed()).map(User::getId).collect(Collectors.toList());
    System.out.println("降序 : " + userIdList);


  }



}
class User {
  //ID
  private Long id;
  //年龄
  private int age;
  //班级
  private String classes;

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  public String getClasses() {
    return classes;
  }

  public void setClasses(String classes) {
    this.classes = classes;
  }
}

猜你喜欢

转载自blog.csdn.net/zhangzehai2234/article/details/106006978
今日推荐