HOME > java > java8

Java8 - 메소드 레퍼런스(Method Reference)

메소드 레퍼런스(Method Reference)는 Lambda 표현식을 더 간단하게 표현하는 방법입니다. 메소드 레퍼런스는 사용하는 패턴에 따라 다음과 같이 분류할 수 있습니다. Static 메소드 레퍼런스, Instance 메소드 레퍼런스, Constructor 메소드 레퍼런스가 있습니다.

04 Oct 2019

Java8 - Interface의 Default Methods

Java8에서 인터페이스에 디폴트 메소드(Default methods)라는 것이 생겼습니다. 디폴트 메소드를 사용하여 인터페이스의 메소드를 선언뿐만 아니라 구현도 할 수 있습니다. 디폴트 메소드를 정의하는 방법과 implements, extends될 때 고려해야할 부분에 대해서 알아보겠습니다. 추상클래스(abstract class)와의 차이점도 알아보겠습니다.

04 Oct 2019

Java8 - 함수형 인터페이스(Functional Interface) 정리

함수형 인터페이스는 1개의 추상 메소드를 갖고 있는 인터페이스를 말합니다. Single Abstract Method(SAM)라고 불리기도 합니다. 함수형 인터페이스를 사용하는 이유는 자바의 람다식은 함수형 인터페이스로만 접근이 되기 때문입니다. 자바는 Runnable, Supplier, Consumer, Function, Predicate 등의 기본 Functional Interface를 제공합니다.

04 Oct 2019

Java8 - SummaryStatistics 예제

SummaryStatistics는 count, min, max, sum average 등의 statistics 정보를 계산해주는 클래스입니다. 그리고 스트림과 함께 사용할 수 있도록 디자인하였습니다. IntSummaryStatistics, LongSummaryStatistics, DoubleSummaryStatistics 클래스로 여러 자료형을 지원합니다.

03 Oct 2019

Java8의 Stream Collect 사용 방법

Collect는 Stream의 데이터를 변형하여 통합하는데 사용되는 기능입니다. Stream의 데이터를 HashSet으로 변경하거나, 문자열을 합쳐 하나의 String 객체로 만들 수도 있습니다. 또, 기본 객체가 아닌 Custom 객체에서도 적용할 수 있습니다.

09 Oct 2018

Java8의 Stream reduction 사용 방법

reduce는 Stream의 데이터를 변환하지 않고, 더하거나 빼는 등의 연산을 수행하여 하나의 값으로 만들 수 있습니다. 예를 들어 수열을 계산하는데 사용할 수 있습니다. 또한 병렬처리를 적용하여 연산 속도를 향상시킬 수 있습니다.

09 Oct 2018

Java8의 Stream find, match 사용 방법

find는 스트림에서 찾은 아이템을 리턴해 줍니다. 관련 함수는 findFirst()와 findAny()가 있습니다. match는 스트림에서 찾고자 하는 특정 아이템이 있으면 true를 리턴해줍니다. 관련 함수들로 anyMatch(), allMatch(), noneMatch()이 있습니다.

15 Jul 2018

Java8의 Optional 사용 방법

Optional은 어떤 객체를 wrapping하는 객체입니다. 어떤 객체를 포함할 수 있고 또는 null 객체를 포함할 수 있습니다. Optional.of, Optional.empty, Optional.filter, Optional.ofNullable, Optional.orElseGet 등의 사용방법을 알아보겠습니다.

15 Jul 2018

Java8의 Stream max, min 사용 방법

max는 Comparator로 스트림의 아이템들을 모두 비교하여 가장 큰 값 1개를 리턴합니다. min은 반대로 가장 작은 값을 넘겨줍니다. Comparator는 함수의 인자로 전달하고, 직접 구현할 수 있기 때문에 자신이 원하는 조건을 비교하는데 적용할 수 있습니다.

14 Jul 2018

Java8의 Stream sorted 사용 방법

sorted는 스트림의 아이템들을 정렬하여 새로운 스트림을 생성합니다. 이를 사용하려면 정렬하려는 객체에 대한 Comparable가 구현되어야 합니다. comparing(String::length), sorted(Comparator), sorted() 등의 사용 방법을 알아보겠습니다.

14 Jul 2018

Java8의 Stream concat 사용 방법

Concat은 두개의 Stream을 하나의 스트림으로 합치는데 사용됩니다. 예를 들어, Concat은 두개의 스트림을 하나의 스트림으로 만들 수 있습니다. 사전적인 의미처럼 Stream.concat(A, B)은 A와 B의 스트림을 하나의 스트림으로 생성해줍니다.

13 Jul 2018

Java8의 Stream distinct 사용 방법

distinct는 스트림의 중복 아이템을 제거하는데 사용됩니다. stream1.distinct()은 스트림에서 중복을 제거한 새로운 스트림을 반환합니다. 중복 객체인지 판단하는 기준은 Object.equals(Object)의 결과 값입니다. 기본객체 뿐만 아니라 Custom 객체도 적용할 수 있습니다.

13 Jul 2018

Java8의 Stream limit과 skip 사용 방법

limit은 어떤 스트림에서 일정 개수만큼만 가져와서 새로운 스트림을 리턴해줍니다. Stream.limit(숫자)은 숫자만큼 아이템을 가져와 새로운 스트림을 생성하여 리턴해줍니다. skip은 limit과 반대입니다. Stream.skip(숫자)은 숫자만큼 아이템을 건너띄고 그 이후의 아이템들로 새로운 스트림을 생성합니다.

13 Jul 2018

Java8의 Stream filter와 Map 사용 방법

filter는 말 그대로 특정조건으로 스트림의 컨텐츠를 필터링하고 새로운 스트림을 생성합니다. map은 각각의 item을 변경하여 새로운 컨텐츠를 생성하는 기능입니다. FlatMap은 여러개의 스트림을 한개의 스트림으로 합쳐줍니다. 복잡한 스트림을 간단한 스트림으로 변경되는데 사용할 수 있습니다.

30 Jun 2018

Java8의 Stream 생성 방법

Java8의 Stream 생성방법에 대해서 알아봅니다. Stream.of(), Stream.generate(), Stream.iterate(), Stream.empty() 등을 이용하여 Stream을 다루는 방법에 대해서 알아봅니다.

25 Jun 2018