java 8

💡 모아모아 지식

[ JAVA 8 ] Stream 정리 - 결과 만들기

가공한 스트림을 가지고 내가 사용할 결과값으로 만들어내는 단계입니다. 따라서 스트림을 끝내는 최종 작업(terminal operations)입니다. Calculating 스트림 API 는 다양한 종료 작업을 제공합니다. 최소, 최대, 합, 평균 등 기본형 타입으로 결과를 만들어낼 수 있습니다. long count = IntStream.of(1, 3, 5, 7, 9).count(); long sum = LongStream.of(1, 3, 5, 7, 9).sum(); 만약 스트림이 비어 있는 경우 count 와 sum 은 0을 출력하면 됩니다. 하지만 평균, 최소, 최대의 경우에는 표현할 수가 없기 때문에 Optional 을 이용해 리턴합니다. OptionalInt min = IntStream.of(1, 3..

💡 모아모아 지식

[ JAVA 8 ] Stream 정리 - 가공하기

Filtering 필터(filter) 는 스트림 내 요소들을 하나씩 평가해서 걸러내는 작업입니다. 인자로 받는 Predicate 는 boolean 을 리턴하는 함수형 인터페이스로 평가식이 들어가게 됩니다. Stream filter(Predicate

💡 모아모아 지식

[ JAVA 8 ] Stream 정리 - 생성하기

배열 ▪ 컬렉션 ▪ 빈 스트림 📌 배열 스트림을 이용하기 위해서는 먼저 생성을 해야 합니다. 스트림은 배열 또는 컬렉션 인스턴스를 이용해서 생성할 수 있습니다. 배열은 다음과 같이 Arrays.stream 메소드를 사용합니다. String[] arr = new String[]{"a", "b", "c"}; Stream stream = Arrays.stream(arr); Stream streamOfArrayPart = Arrays.stream(arr, 1, 3); // 1~2 요소 [b, c] 📌 컬렉션 컬렉션 타입(Collection, List, Set)의 경우 인터페이스에 추가된 디폴트 메소드 stream 을 이용해서 스트림을 만들 수 있습니다. public interface Collection exte..

💡 모아모아 지식

[ JAVA 8 ] Stream 정리

스트림 기초 자바 8에서 추가한 스트림 Streams 은 람다를 활용할 수 있는 기술 중 하나입니다. 자바 8 이전에는 배열 또는 컬렉션 인스턴스를 다루는 방법은 for 또는 foreach 문을 돌면서 요소 하나씩을 꺼내서 다루는 방법이었습니다. 간단한 경우라면 상관없지만 로직이 복잡해질수록 코드의 양이 많아져 여러 로직이 섞이게 되고, 메소드를 나눌 경우 루프를 여러 번 도는 경우가 발생합니다. 스트림은 '데이터의 흐름’입니다. 배열 또는 컬렉션 인스턴스에 함수 여러 개를 조합해서 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있습니다. 또한 람다를 이용해서 코드의 양을 줄이고 간결하게 표현할 수 있습니다. 즉, 배열과 컬렉션을 함수형으로 처리할 수 있습니다. 또 하나의 장점은 간단하게 병렬처리 mu..

📌 JAVA 자바/📚 모던 자바 인 액션

📚 04 - 스트림

스트림은 중첩된 제어흐름문장을 줄일 수 있고, 람다식과 함께 사용하여 컬렉션에 들어있는 데이터에 대한 처리를 매우 간결한 표현으로 작성할 수 있다. 또한 내부 반복자를 사용하기 때문에 병렬처리가 쉬운데, 이는 아래에 상세 풀이하도록 하겠다. 🔽 스트림에 더 자세한 내용은 아래 링크에 포스팅했다 ! https://soooving.tistory.com/entry/JAVA-8-Stream-정리 스트림 우선 스트림을 사용하지 않은 코드와, 사용한 코드를 비교하여 보겠다. // 🔽 Stream 을 사용하지 않은 코드 ArrayList list = new ArrayList(Arrays.asList("a", "b", "c")); for (String value : list) { if (StringUtils.equal..

📌 JAVA 자바/📚 모던 자바 인 액션

📚 03 - 자바 함수 ( 코드 넘겨주기 )

이번에는 함수에 코드를 인자로 넘기는 것과 메서드 전달에서 람다로 변경하는 내용을 예시를 들어 설명할 것이다. 코드넘겨주기 Apple 클래스와 getColor 메서드가 있고, Apples 리스트를 포함하는 변수 inventory가 있다고 가정하자. 이때 모든 녹색 사과를 선택해서 리스트를 반환하는 프로그램을 구현하려 한다. 이처럼 특정 항목을 선택해서 반환하는 동작을 필터 Filter 라고 한다. JAVA 8 이전에는 다음처럼 filterGreenApples 라는 메서드를 구현했을 것이다. public static List filterGreenApples(List inventory) { List result = new ArrayList(); for (Apple apple : inventory) { if ..

📌 JAVA 자바/📚 모던 자바 인 액션

📚 02 - 자바 함수 ( 메서드와 람다 )

자바함수 프로그래밍 언어에서 함수 라는 용어는 메서드 특히 정적 메서드와 같은 의미로 사용된다. 자바의 함수는 이에 더해 수학적인 함수처럼 사용되며 부작용을 일으키지 않는 함수를 의미한다. 자바 8에서는 함수를 새로운 값의 형식으로 추가했다. 이는 다음에 포스팅할 스트림 Stream 과 연계될 수 있도록 함수를 만들었기 때문이다. 먼저 함수를 값처럼 취급한다고 했는데 이 특징이 어떤 장점을 제공하는지 살펴보자. 자바 프로그램에서 조작할 수 있는 값을 생각해보자. 첫번째로 int_42, double_3.14 등의 기본값이 있다. 두번째로 객체도 값이다. new 또는 팩토리 메서드 또는 라이브러리 함수를 이용해서 객체의 값을 얻을 수 있다. 객체 참조는 클래스의 인스턴스를 가리킨다. 예를 들어 String_..

📌 JAVA 자바/📚 모던 자바 인 액션

📚 01 - JAVA 8 설계의 밑바탕을 이루는 세가지 프로그래밍 개념

JAVA 8 의 프로그래밍 개념 2014년도에 나온 JAVA 8의 프로그래밍 개념은 아래와 같이 크게 3가지로 나뉜다 스트림 처리 Stream Processiog 코드 일부를 API로 전달 병렬성 각 개념에 대한 상세 내용은 아래에 간략하게 풀어놓았다 1. 스트림 처리 Stream Processiog 스트림 Stream 은 한번에 한개씩 만들어지는 연속적인 데이터 항목들의 모임이다. JAVA8 에는 java.util.stream 패키지에 Stream API가 추가되었다. Stream API 의 핵심 : 기존에는 한번에 한 항목을 처리했으나 데이터베이스 질의처럼 고수준으로 추상화하여 일련의 스트림으로 만들어 처리할 수 있다. 또한 스트림 파이프라인을 이용해서 입력 부분을 여러 CPU 코어에 쉽게 할당할 수..

슈콩
'java 8' 태그의 글 목록