Javaでリスト集合が条件を満たすリスト要素集合をフィルタする
プロジェクト開発の過程で、リストの集合を条件にフィルタリングし、私たちが望んでいる結果やプロジェクトのニーズに合ったデータをフィルタリングすることがよくあります.例えば、私たちは学生の対象を持っていて、学生一人一人が自分の年齢属性を持っていますが、私たちはこの学生の中で21と22のすべての学生をスクリーニングしたいと思っています.私たちはこの学生の集合のデータを条件によってスクリーニングして、私たちが望んでいる結果を得る必要があります.
学生エンティティクラスを作成するには、次の手順に従います.
Java 8のlambda式を使用してフィルタリング
Java 8 lambda式の使用については、次の参照してください.http://www.importnew.com/16436.html
学生エンティティクラスを作成するには、次の手順に従います.
package com.shsj.entity;
public class Student {
private Integer stuNum; //
private String name; //
private Integer age; //
public Integer getStuNum() {
return stuNum;
}
public void setStuNum(Integer stuNum) {
this.stuNum = stuNum;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student [stuNum=" + stuNum + ", name=" + name + ", age=" + age + "]";
}
}
Java 8のlambda式を使用してフィルタリング
package com.shsj.test;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import com.shsj.entity.Student;
/**
* @Description List
* @author
* @version v1.0
* @date 2018 8 23
*/
public class FilterListTest {
/**
* @Description , list ,
* @author
* @return List
*/
public static List stuList() {
List stuList = new ArrayList();
Student stu1 = new Student();
stu1.setStuNum(20180823);
stu1.setName(" ");
stu1.setAge(20);
stuList.add(stu1);
Student stu2 = new Student();
stu2.setStuNum(20180824);
stu2.setName(" ");
stu2.setAge(21);
stuList.add(stu2);
Student stu3 = new Student();
stu3.setStuNum(20180825);
stu3.setName(" ");
stu3.setAge(21);
stuList.add(stu3);
Student stu4 = new Student();
stu4.setStuNum(20180826);
stu4.setName(" ");
stu4.setAge(22);
stuList.add(stu4);
return stuList;
}
public static void main(String[] args) {
List stuList = stuList();
// : stuList 21 22
List ageList = new ArrayList();
ageList.add(21);
ageList.add(22);
// JDK1.8 lambda , stuList 。
//
List result = null;
result = stuList.stream()
.filter((Student s) -> ageList.contains(s.getAge()))
.collect(Collectors.toList());
// stuList
System.out.println(" stuList ");
stuList.forEach((Student s) -> System.out.println(s.getName() + "--->" + s.getAge()));
// result
System.out.println(" result ");
result.forEach((Student s) -> System.out.println(s.getName() + "--->" + s.getAge()));
}
}
Java 8 lambda式の使用については、次の参照してください.http://www.importnew.com/16436.html