有啥用?
就是从一大堆对象中筛选出符合条件的对象来,就这么简单。
类图
类图.png输出
All objects:
condition 2 : 466002798
condition 2 : 1784662007
condition 0 : 997110508
condition 0 : 509886383
condition 1 : 1854778591
condition 2 : 2054798982
condition 2 : 885951223
condition 0 : 191382150
condition 0 : 142666848
condition 2 : 1060830840
condition 0 : 997110508
condition 0 : 509886383
condition 0 : 191382150
condition 0 : 142666848
condition 1 : 1854778591
condition 2 : 466002798
condition 2 : 1784662007
condition 2 : 2054798982
condition 2 : 885951223
condition 2 : 1060830840
Process finished with exit code 0
调用
package com.company;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Main {
public static void main(String[] args) {
// write your code here
int objectSum = 10;
List<TargetClass> sourceList = new ArrayList<>();
System.out.println("All objects:");
for (int couter = 0;couter < objectSum;couter++) {
TargetClass tempObject = new TargetClass();
tempObject.objectIndex = new Random().nextInt(3);
System.out.println("condition " + tempObject.objectIndex + " : " +tempObject.hashCode());
sourceList.add(tempObject);
}
System.out.println();
List<TargetClass> resultList0 = new FirstConditionFilter().filterSourceObjectsList(sourceList);
for (TargetClass iterator : resultList0) {
System.out.println("condition 0 : " + iterator.hashCode());
}
System.out.println();
List<TargetClass> resultList1 = new SecondConditionFilter().filterSourceObjectsList(sourceList);
for (TargetClass iterator : resultList1) {
System.out.println("condition 1 : " + iterator.hashCode());
}
System.out.println();
List<TargetClass> resultList2 = new ThirdConditionFilter().filterSourceObjectsList(sourceList);
for (TargetClass iterator : resultList2) {
System.out.println("condition 2 : " + iterator.hashCode());
}
}
}
被依赖的对象类型
package com.company;
public class TargetClass {
public int objectIndex;
}
过滤器接口
package com.company;
import java.util.List;
public interface FilterInterface {
List<TargetClass> filterSourceObjectsList(List<TargetClass> sourceList);
}
过滤器0
package com.company;
import java.util.ArrayList;
import java.util.List;
public class FirstConditionFilter implements FilterInterface {
@Override
public List<TargetClass> filterSourceObjectsList(List<TargetClass> sourceList) {
List<TargetClass> resultList = new ArrayList<>();
for (TargetClass iterator:sourceList) {
if (iterator.objectIndex == 0)resultList.add(iterator);
}
return resultList;
}
}
过滤器1
package com.company;
import java.util.ArrayList;
import java.util.List;
public class SecondConditionFilter implements FilterInterface {
@Override
public List<TargetClass> filterSourceObjectsList(List<TargetClass> sourceList) {
List<TargetClass> resultList = new ArrayList<>();
for (TargetClass iterator:sourceList) {
if (iterator.objectIndex == 1)resultList.add(iterator);
}
return resultList;
}
}
过滤器2
package com.company;
import java.util.ArrayList;
import java.util.List;
public class ThirdConditionFilter implements FilterInterface {
@Override
public List<TargetClass> filterSourceObjectsList(List<TargetClass> sourceList) {
List<TargetClass> resultList = new ArrayList<>();
for (TargetClass iterator:sourceList) {
if (iterator.objectIndex == 2)resultList.add(iterator);
}
return resultList;
}
}
多谢捧场
如果您觉得我的文章有价值,那么赏脸打赏一个,鄙人感激不尽。不过,不打赏看看也是好的,如果有不对的地方,还请您多多指正。
网友评论