본문 바로가기
Program/Java

Predicate in stream

by pishio 2022. 7. 1.

 

* 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

댓글