Stream을 활용하여 합계를 구하는 로직을 작성해보겠습니다. 합계값 (Sum) List numbers = Arrays.asList(1, 2, 3, 4, 5); Integer sum1 = numbers.stream().reduce(0, Integer::sum); System.out.println("sum1 = " + sum1); // 15 int sum2 = numbers.stream().mapToInt(i -> i).sum(); System.out.println("sum2 = " + sum2); // 15 평균값 (Avg) final OptionalDouble average = numbers.stream().mapToInt(Integer::intValue).average(); final double a..
이번 글에서는 자바에서 사용하는 그룹핑 방법을 간단히 소개해드리고자 글을 작성하게 되었습니다. 회사에서 사용하는 기술 중 하나는 JPA인데, JPA에서는 기본적으로 Group By 옵션을 사용할 수 없습니다. 적어도 CustomRepository 를 만들어 Native Query 로 작성을 하거나, QueryDSL 을 사용해서 쿼리를 변경해야 합니다. 이 글은 MyBatis의 방법으로 GROUP BY 를 사용하는 대신 자바에서 사용할 수 있는 방법을 제시하고자 합니다. Collertors 클래스 사용하기 1. groupingBy() 데이터를 그룹핑해서 Map으로 리턴합니다. Thread safe 하지 않습니다. Lists.newArrayList() .stream() .collect(Collectors.g..
아래 소스는 Java8을 기준으로 작성되었습니다. 혹시 오타가 있거나 잘못 이해한 부분이 있으면 댓글로 적어주세요 :) 글(1) 에서 기본적으로 정의를 했다면 이번에는 어떻게 구체적으로 사용하는지 설명해보려고 한다. Lambda와 Stream(1) Author: 주니용 아래 소스는 Java8을 기준으로 작성되었습니다. 혹시 오타가 있거나 잘못 이해한 부분이 있으면 댓글로 적어주세요 :) 프로그래밍하면서 정말 많이 사용하는 것 중 하나가 for문이다. abbo.tistory.com 기본적으로 인터페이스를 생성하면 다른 클래스에서는 아래와 같이 사용할 수 있다. 소스가 너무 길었음에도 람다를 사용하여 간편하게 만들었다. 파라미터를 사용하는 방법은 위와 같고, 2개 이상인 경우는 소괄호'()'를 붙여주면 된다..
아래 소스는 Java8을 기준으로 작성되었습니다. 혹시 오타가 있거나 잘못 이해한 부분이 있으면 댓글로 적어주세요 :) 프로그래밍하면서 정말 많이 사용하는 것 중 하나가 for문이다. for문은 원시적으로 아래와 같이 사용해왔다. 이렇게 반복문을 사용하는 것을 Java8, JavaScript에서 제공하는 기본 라이브러리로 변경할 수 있다. Stream이란 클래스 안에 내장되어 있다. 시작은 간단하다. list.stream()으로 시작만 하면 된다. 그리고 끝도 간단하다. list.stream(). ... .collect(Collectors.toList()); 로 닫으면 끝난다. 이렇게 보아선 도무지 감이 오지 않아서 예시를 한번 보면서 얘기하는 것이 좋을 것 같다. 위에서 제공한 것을 활용해보려고 한다...