广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州Java过滤器是什么?_北大青鸟IT计算机学校

作者:邓华发布时间:2021-03-29分类:Java技术浏览:988


导读:Java过滤器是什么?惠州北大青鸟老师表示Java适配器模式是Java结构型设计模式中的一种。下面我们跟着老师一起学习Java过滤器吧!

Java过滤器是什么?惠州北大青鸟老师表示Java适配器模式是Java结构型设计模式中的一种。下面我们跟着老师一起学习Java过滤器吧!

过滤器模式使用不同的条件过滤对象。

这些标准可以通过逻辑操作链接在一起。

过滤器模式是一种结构型模式。

例子

import java.util.List;import java.util.ArrayList;class Employee {  private String name;  private String gender;  private String retireStatus;  public Employee(String name, String gender, String r) {
   this.name = name;
   this.gender = gender;
   this.retireStatus = r;
 }  public String getName() {    return name;
 }  public String getGender() {    return gender;
 }  public String getRetireStatus() {    return retireStatus;
 }

 @Override  public String toString() {    return "Employee [name=" + name + ", gender=" + gender
       + ", retireStatus=" + retireStatus + "]";
 }
}interface Criteria {  public List<Employee> meetCriteria(List<Employee> persons);
}class CriteriaMale implements Criteria {

 @Override  public List<Employee> meetCriteria(List<Employee> persons) {
   List<Employee> malePersons = new ArrayList<Employee>();    for (Employee person : persons) {      if (person.getGender().equalsIgnoreCase("MALE")) {
       malePersons.add(person);
     }
   }    return malePersons;
 }
}class CriteriaFemale implements Criteria {

 @Override  public List<Employee> meetCriteria(List<Employee> persons) {
   List<Employee> femalePersons = new ArrayList<Employee>();    for (Employee person : persons) {      if (person.getGender().equalsIgnoreCase("FEMALE")) {
       femalePersons.add(person);
     }
   }    return femalePersons;
 }
}class CriteriaRetire implements Criteria {

 @Override  public List<Employee> meetCriteria(List<Employee> persons) {
   List<Employee> singlePersons = new ArrayList<Employee>();    for (Employee person : persons) {      if (person.getRetireStatus().equalsIgnoreCase("YES")) {
       singlePersons.add(person);
     }
   }    return singlePersons;
 }
}class AndCriteria implements Criteria {  private Criteria criteria;  private Criteria otherCriteria;  public AndCriteria(Criteria criteria, Criteria otherCriteria) {
   this.criteria = criteria;
   this.otherCriteria = otherCriteria;
 }

 @Override  public List<Employee> meetCriteria(List<Employee> persons) {
   List<Employee> firstCriteriaPersons = criteria.meetCriteria(persons);    return otherCriteria.meetCriteria(firstCriteriaPersons);
 }
}class OrCriteria implements Criteria {  private Criteria criteria;  private Criteria otherCriteria;  public OrCriteria(Criteria criteria, Criteria otherCriteria) {
   this.criteria = criteria;
   this.otherCriteria = otherCriteria;
 }

 @Override  public List<Employee> meetCriteria(List<Employee> persons) {
   List<Employee> firstCriteriaItems = criteria.meetCriteria(persons);
   List<Employee> otherCriteriaItems = otherCriteria.meetCriteria(persons);    for (Employee person : otherCriteriaItems) {      if (!firstCriteriaItems.contains(person)) {
       firstCriteriaItems.add(person);
     }
   }    return firstCriteriaItems;
 }
}public class Main {  public static void main(String[] args) {
   List<Employee> persons = new ArrayList<Employee>();

   persons.add(new Employee("Tom", "Male", "YES"));
   persons.add(new Employee("Jack", "Male", "NO"));
   persons.add(new Employee("Jane", "Female", "NO"));
   persons.add(new Employee("Diana", "Female", "YES"));
   persons.add(new Employee("Mike", "Male", "NO"));
   persons.add(new Employee("Bob", "Male", "YES"));

   Criteria male = new CriteriaMale();
   Criteria female = new CriteriaFemale();
   Criteria retire = new CriteriaRetire();
   Criteria retireMale = new AndCriteria(retire, male);
   Criteria retireOrFemale = new OrCriteria(retire, female);

   System.out.println("Males: ");
   printPersons(male.meetCriteria(persons));

   System.out.println("Females: ");
   printPersons(female.meetCriteria(persons));

   System.out.println("Retire Males: ");
   printPersons(retireMale.meetCriteria(persons));

   System.out.println("Retire Or Females: ");
   printPersons(retireOrFemale.meetCriteria(persons));
 }  public static void printPersons(List<Employee> persons) {    for (Employee person : persons) {
     System.out.println(person);
   }
 }
}

上面的代码生成以下结果。

Java过滤器标准模式.png

想了解更多关于Java的资讯,可以来惠州北大青鸟新方舟校区了解一下。

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表