* Predicate example
* HashMap stream example
* filter, collect
아래 처럼 사용을 할 수 있다.
파라미터로 넘기지 않은 employee가 어떻게 읽혀 지는지 모르겠다.
public List<Employee> search(String value, String fieldOption, String compareOption, HashMap<Integer, Employee> employees) {
return employees.values().stream()
.filter(getEmployeeByOption(value, fieldOption, compareOption))
.collect(Collectors.toList());
}
protected Predicate<Employee> getEmployeeByOption(String value, String fieldOption, String compareOption) {
switch (compareOption != null ? compareOption : OPTION_FULL_NUMBER) {
case "-g":
return (employee) -> CompareUtil.isGrater(getNumberByFieldOption(employee.getPhoneNumber(), fieldOption), value);
case "-ge":
return (employee) -> CompareUtil.isGraterEqual(getNumberByFieldOption(employee.getPhoneNumber(), fieldOption), value);
case "-s":
return (employee) -> CompareUtil.isSmaller(getNumberByFieldOption(employee.getPhoneNumber(), fieldOption), value);
case "-se":
return (employee) -> CompareUtil.isSmallerEqual(getNumberByFieldOption(employee.getPhoneNumber(), fieldOption), value);
default:
return (employee) -> getNumberByFieldOption(employee.getPhoneNumber(), fieldOption).equals(value);
}
}
'Program > Java' 카테고리의 다른 글
@ParameterizedTest with array list (0) | 2022.06.29 |
---|---|
Java RPN Calculator (0) | 2022.06.17 |
[JUnit] assertTrue(), assertFalse() (0) | 2022.06.15 |
댓글