Java Stream 최종 처리

1. 최종 처리 스트림은 중간 처리, 최종 처리 과정을 거친 후에 결과값을 반환합니다. 최종 처리는 중간 처리에서 정제된 요소들을 반복하거나, 집계(카운팅, 총합, 평균) 작업을 수행합니다. 주의할 점은 최종 처리를 꼭 해줘야 한다는 것입니다. 최종 처리를 하지 않으면 중간처리도 동작하지 않습니다. 2. 최종 처리 종류 2.1 매칭 매칭은 요소들이 특정 조건을 만족하는지 여부를 조사하는 최종 처리 기능입니다. 메서드는 , , 가 있습니다. 매개값으로 주어진 가 리턴하는 값에 따라 boolean 값을 리턴합니다. 예시 Output 2.2 집계 집계는 요소들을 처리해서 카운팅, 합계, 평균값, 최대값, 최소값등과 같이 하나의 값으로 산출하는 최종 처리 기능입니다. , , , , , , 가 있습니다. 예시 Output 2.3 수집 수집은 필터링 또는 매핑한 후 요소들을 수집하는 최종 처리 기능입니다. 메서드를 사용합니다. 메서드는 를 매개변수로 사용합니다. Collect<…

Java Stream 중간 처리

1. Java Stream Java 8부터 컬렉션 및 배열의 요소를 반복처리하기 위해 추가된 기능 2. Stream 특징 내부 반복자이므로 처리 속도가 빠르고 병렬 처리에 효율적이다. 람다식으로 다양한 요소 처리를 정의할 수 있다. 중간 처리와 최종 처리를 수행하도록 파이프 라인을 형성할 수 있다. 3. 중간 처리, 최종 처리 스트림은 중간 처리, 최종 처리 과정을 거친 후에 결과값을 반환합니다. 중간 처리는 요소를 걸러내거나(필터링), 요소를 변환시키거나(매핑), 정렬하는 자업을 수행합니다. 최종 처리는 중간 처리에서 정제된 요소들을 반복하거나, 집계(카운팅, 총합, 평균) 작업을 수행합니다. 주의할 점은 최종 처리를 꼭 해줘야 한다는 것입니다. 최종 처리를 하지 않으면 중간처리도 동작하지 않습니다. 예시로 사용할 Student 클래스입니다. Output 4. 스트림 생성 java.util.stream 패키지에는 스트림 인터페이스들이 있습니다. BaseStream 인터페이스를…

Java List

1. Java list 요소를 순차적으로 저장하고 중복을 허용하는 데이터 집합입니다. java.util 패키지 내부에 있고, Collection 인터페이스의 하위 인터페이스입니다. 2. List 종류 2.1 ArrayList ArrayList는 배열을 기반으로 만들어진 자료구조입니다. 배열은 크기가 고정이지만, ArrayList는 동적으로 늘릴 수 있습니다. 검색을 할 경우 인덱스로 조회하기 때문에 속도가 빠릅니다. 데이터 추가, 삭제를 할 경우 이후의 데이터를 복사 후 재정렬하기 때문에 빈번한 추가, 삭제에는 부적합합니다. Capacity 내부적으로 저장이 가능한 메모리 용량(Capacity)이 있으며 현재 사용 중인 공간의 크기(Size)가 있습니다. 인스턴스의 capacity 값 이상을 저장하려고 할 때 더 큰 공간의 메모리를 새롭게 할당합니다. ArrayList 코드를 보면서 어떻게 구성되었고 동작하는지 확인해보겠습니다. 기본 가용량(DEFAULT_CAPACITY)은 …

Java Set

1. Java set Set 컬렉션 클래스는 Set 인터페이스를 구현한 클래스입니다. Set 컬렉션 클래스는 요소의 저장 순서를 유지하지 않고, 같은 요소의 중복 저장을 허용하지 않습니다. 따라서 중복을 제거해야 하거나 저장 순서가 중요하지 않을 때 자주 사용하는 컬렉션 클래스입니다. 2. Map 종류 2.1 HashSet 해시 알고리즘을 사용하여 검색 속도가 빠르고, 내부적으로 HashMap 인스턴스를 이용하여 요소를 저장합니다. HashSet은 요소를 삽입할 때 이미 존재하는 요소인지 파악하기 위해 내부적으로 다음과 같은 과정을 거칩니다. 해당 요소에서 메서드를 호출해 반환된 해시 값으로 검색할 범위를 결정한다. 해당 범위 내의 요소들을 메서드로 비교한다. output 2.2 LinkedHashSet HashSet과 동일한 구조를 가지지만 삽입된 순서를 저장하는 Set 자료구조입니다. output 2.3 TreeSet TreeSet은 요소를 정렬해서 저장합니다. 내부적으로…