java 43

자바 스트림 Java Stream => 기본 집계 ( sum(), count(), average(), max(), min() ) / 커스텀 집계 ( reduce() )

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 집계란 : 최종 처리 기능으로써 요소들을 처리해 합계, 평균 값 같이 하나의 값으로 산출하는 것입니다.=> 많은 양의 데이터를 가공해 출소하는 리덕션이라고 볼 수 있습니다. 스트림은 기본 집계 메소드를 제공합니다. OptionalXXX 의 종류는 Optional, OptionalInt, OptionalLong, OptionalDouble 타입이 있고,값을 저장하는 값 기반 클래스들입니다.이 겍체에서 값을 얻으려면 get(), getAsDouble(), getAsInt, getAsLong()를 호출하면 됩니다.예제) import ..

자바 2017.03.31

자바 스트림 Java Stream => 루핑 (peek(), forEach()) / 매칭( allMatch(), anyMatch(), noneMatch() )

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 요소 전체를 반복하는 것을 루핑이라고 합니다.메소드로는 peek() 와 forEach()가 있는데위 두 메소드는 기능은 같지만 동작 방식이 다릅니다. peek() 는 중간 처리 단계에서 전체 요소를 루핑하고, 추가적 작업을 위해 사용하며,최종 처리 메소드가 호출돼야만 동작합니다.예) 필터링 후에 어떤 요소가 남았는지 확인할 때 사용 때intStream .filter( a -> a % 3 ==0 ) .peek(a -> System.out.println( a) ) .sum();peek() 메소드가 가장 마지막에 호출된다면 해당 스트..

자바 2017.03.31

자바 스트림 Java Stream => 매핑( flatMapXXX(), mapXXX() , asXXXStream(), boxed()) / 정렬(sorted())

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 매핑메소드들 :flatMapXXX()asXXXStream()boxed()매핑 : 중간 처리의 기능으로써 스트림의 요소들을 다른 요소로 대체하는 작업을 말합니다.스트림에서 제공하는 매핑 메소드로는 flatMapXXX(), mapXXX(), asDoubleStream(),asLongStream(), boxed()가 있습니다. 1. flatMapXXX(): 요소를 대체하는 복수 개의 요소들로 구성된 새로운 스트림을 리턴합니다.스트림에서 A라는 요소가 A1 과 A2로 대체되고, B라는 요소가 B1 과 B2로 대체된다고 할 때새로운 스트..

자바 2017.03.30

자바 스트림 Java Stream -> 스트림 파이프 라인과 필터링 (distinct(), filter())

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 2017/03/30 - [자바] - 자바 스트림 Java Stream => 스트림의 종류 리덕션 => 대량의 데이터를 가공해서 축소하는 것을 일반적으로 일컫는 말.리덕션의 결과물로는데이터의 합계, 평균 값, 카운팅, 최댓값, 최솟값 등이 있습니다.컬렉션의 요소를 리덕션의 결과물로 바로 집계할 수 없는 경우에집계하기 좋도록 필터링, 매핑, 정렬, 그룹핑등의 중간처리가 필요합니다. 스트림에서는 중간 처리와 최종 처리를 파이프 라인으로 해결하는데요.여러 개의 스트림이 연결되어 있는 구조를 파이프 라인이라고 합니다.파이프 라인에서 최종..

자바 2017.03.30

자바 스트림 Java Stream => 스트림의 종류

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스트림의 특징 2017/03/30 - [자바] - 자바 스트림 Java Stream => 스트림의 특징 java.util.Stream 패키지에 스트림 API 들이 있습니다.BaseStream을 부모로 하여 자식 인터페이스들이 상속 관계를 이루고 있습니다. BaseStream에는 공통적으로 사용되는 메소드들이 정의만 되어있고 직접 사용되지는 않습니다.하위 스트림인 Stream, IntStream, DoubleStream, LongStream이 직접적으로 이용됩니다.Stream은 객체 요소를 처리하는 스트림이고,나머지 스트림들은 가..

자바 2017.03.30

자바 스트림 Java Stream => 스트림의 특징

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스트림이란?2017/03/27 - [자바] - 자바 스트림 Java Stream - 스트림이란?, 반복자 스트림 이번 포스팅에서는 스트림의 특징에 대해 공부하겠습니다. Stream은 Iterator와 비슷한 역할을 하는 반복자인데요.람다식으로 요소 처리 코드를 제공한다는 점과 내부 반복자를 사용하기 때문에병렬 처리가 쉽다는 점, 중간 처리와 최종 처리 작업을 수행하는 점에서많은 차이를 가지고 있습니다. 특징 1 -> 람다식으로 요소 처리 코드를 제공한다.=> 스트림이 제공하는 대부분의 요소 처리 메소드들은 함수적 인터페이스 매개..

자바 2017.03.30

자바 스트림 Java Stream - 스트림이란?, 반복자 스트림

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅부터는 자바 스트림에 대해 공부하겠습니다. 스트림 =>컬렉션(배열)의 저장 요소를 하나씩 참조하여 람다식으로 처리할 수 있도록 해주는 반복자입니다.람다식이 궁금하시다면?2017/03/19 - [자바] - 자바 람다식 java 기본 문법과 함수적 인터페이스 반복자 스트림 =>자바 7 버전 이전까지는 List 컬렉션의 요소를 순차적으로 처리하려면Iterator 반복자를 사용하였습니다.ex)List list = new ArrayList();list.add(1);list.add(20);list.add(10);Iterator ..

자바 2017.03.27

자바 컬렉션 Java - LIFO 와 FIFO 컬렉션 => Stack / Queue / 동기화 컬렉션/ 병렬처리 컬렉션

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 컬렉션 프레임워크에는 LIFO 자료 구조를 제공하는 Stack 클래스와FIFO 자료 구조를 제공하는 Queue 인터페이스를 제공합니다.아래 그림은 LIFO 구조와 FIFO 구조를 설명한 사진입니다. JVM 스택 메모리가 Stack을 응용한 대표적인 예입니다.Stack 메모리에 저장된 변수는 나중에 저장된 것부터 제거됩니다.쓰레드 풀이 작업 큐는 Queue를 응용한 예입니다. Stack 클래스의 주요 메소드생성 방법 : Stack stack = new Stack();예제) public class Coin { private int ..

자바 2017.03.25

자바 컬렉션 Java - TreeMap, Comparable과 Comparator

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이전 포스팅에 이어서 검색 기능을 강화시킨 컬렉션에 대해 공부하겠습니다.2017/03/25 - [자바] - 자바 컬렉션 Java 컬렉션 - 이진트리구조, TreeSet TreeMap : TreeSet과의 차이점 : Key 와 Value가 저장된 Map.Entry를 저장한다는 것.TreeMap에 객체를 저장하게 되면 자동으로 정렬이 됩니다.부모 키값과 비교를 해 키 값이 낮으면 왼쪽 자식 노드로,키 값이 높으면 오른쪽 자식 노드의 Map.Entry 객체에 저장됩니다. TreeMap 생성 방법은 HashMap과 동일합니다.2017/..

자바 2017.03.25

자바 컬렉션 Java 컬렉션 - 이진트리구조, TreeSet

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 검색 기능을 강화시킨 컬렉션에 대해 공북하겠습니다. 1. 이진트리구조 : 여러 개의 노드로 연결된 트리 형태로 연결된 구조이다.루트 노드라 불리는 하나의 노드에서부터 시작해 최대 2개의 노드를연결할 수 있는 구조 상 하로 연결된 두 노드를 부모 자식 관곙 있다고 하면위를 부모, 아래를 자식이라 합니다.부모 노드 값보다 작은 값은 왼쪾 자식 노드에, 크면 오른쪾 자식 노드에 위치시킵니다. ex) 첫번 째로 저장되는 값이 루트 노드가 되고, 두번 째 값은 루트 노드부터시작해서 값의 크기를 비교하며 트리를 따라 내려갑니다.숫자가 아닌..

자바 2017.03.25