설 연수
하하호홓
설 연수
전체 방문자
오늘
어제
  • 분류 전체보기 (231)
    • Back-End (2)
      • Java (20)
      • JSP (13)
      • Spring (18)
      • Kotlin (0)
      • node.js (0)
    • Front-End (68)
      • JavaScript (19)
      • jQuery (39)
      • Angular (4)
      • HTML (5)
    • Dev-Ops (12)
      • Linux, Cloud (5)
      • docker, k8s (5)
      • ElasticSeach (2)
    • Other (33)
      • OOP (3)
      • 알고리즘 (2)
      • DB (12)
      • Git (1)
      • Swift (4)
    • Backup (65)

블로그 메뉴

    공지사항

    인기 글

    태그

    • angular2
    • Redis
    • docker
    • RESTful
    • jOOQ
    • Kafka
    • 크로스도메인
    • jquery invalid
    • angular 콜백
    • flex
    • mongodb
    • angular4
    • INVALID
    • page not found
    • angular callback
    • 404 error
    • 패스트캠퍼스
    • CORS
    • MYSQL
    • Angular

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    설 연수

    하하호홓

    직접 작성해보는 java map, filter, reduce, curry
    Back-End/Java

    직접 작성해보는 java map, filter, reduce, curry

    2019. 10. 28. 13:03

    javascript 함수형 프로그래밍을 스터디 후 java버전 메소드 몇개 작성.

    public static <T> List<T> filter(Predicate<T> predi, List<T> list) {
        if(list==null) return null;
        List<T> result = new ArrayList<T>();
        list.forEach(value->{
            if(predi.test(value)) result.add(value);
        });
        return result;
    }
    
    public static <T, R> List<R> map(Function<T, R> f, List<T> list) {
        if(list==null) return null;
        List<R> result = new ArrayList<R>();
        list.forEach(value->{
            result.add(f.apply(value));
        });
        return result;
    }
    
    public static <T> T reduce(BiFunction<T, T, T> f, T initValue, List<T> list){
        if(list==null || list.size()==0) return initValue;
        for(T value : list) {
            initValue = f.apply(initValue, value);
        }
        return initValue;
    }
    
    public static <T> T reduce(BiFunction<T, T, T> f, List<T> list){
        if(list==null || list.size()==0) return null;
        T initValue = list.get(0);
        list = list.subList(1, list.size());
        return reduce(f, initValue, list);
    }
    
    public <T1, T2, R> Function<T1, Function<T2, R>> curry(BiFunction<T1, T2, R> f) {
        return (T1 a) -> (T2 b) -> f.apply(a, b);
    }
    

    'Back-End > Java' 카테고리의 다른 글

    [TDD] Mockito  (0) 2020.05.08
    JAVA 자소 분리된 단어 합치기  (2) 2020.04.30
    함수형 JAVA코딩01  (0) 2019.06.06
    Apache Tomcat CORS설정  (1) 2018.02.04
    [Jasypt] properties파일 암호화  (0) 2015.05.19
      'Back-End/Java' 카테고리의 다른 글
      • [TDD] Mockito
      • JAVA 자소 분리된 단어 합치기
      • 함수형 JAVA코딩01
      • Apache Tomcat CORS설정
      설 연수
      설 연수

      티스토리툴바