본문 바로가기

Java55

[Java] 중간 연산 - 정렬과 루핑(Looping) 정렬 📌 정렬 기능을 제공하는 중간 연산 메소드 Stream sorted(Comparator 2022. 10. 21.
[Java] 리덕션(Reduction)과 병렬 스트림(Parallel Streams) 리덕션(Reduction) 📌 리덕션(Reduction) : 데이터를 축소하는 연산. 💡 BinaryOperator의 추상 메소드 : T apply(T t1, T t2) T reduce(T identity, BinaryOperator accumulator) 📌 stream이 빈 경우, reduce 메소드의 첫 번째 인자 반환. 📌 stream이 비어 있지 않은 경우, reduce 메소드의 첫 번째 인자를 스트림의 첫 번째 데이터로 간주함. 📄 StreamReduceTest.java package reduction; import java.util.Arrays; import java.util.List; import java.util.function.BinaryOperator; public class Stre.. 2022. 10. 21.
[Java] 중간 연산 - 필터링(Filtering)과 맵핑(Mapping) 필터링(Filtering) 📌 필터링(Filtering) : 스트림을 구성하는 데이터 중 일부를 조건에 따라 걸러내는 행위. 매개변수형 : Predicate → boolean test(T t) 추상 메소드 구현한 람다식을 인자로 전달해야 함. Stream filter(Predicate 2022. 10. 21.
[Java] 스트림 스트림(Stream) 📌 스트림(Stream) : 데이터의 흐름. 📌 중간 연산(Intermediate Operation) : 마지막이 아닌 위치에서 진행되어야 하는 연산. 📌 최종 연산(Terminal Operation) : 마지막에 진행되어야 하는 연산. 📌 스트림 연산 : 지연(Lazy) 처리 방식으로 동작. : 최종 연산을 진행하지 않으면, 중간 연산 결과는 스트림에 반영되지 않음. 최종 연산이 진행되어야, 중간 연산 결과가 스트림에 반영됨. 📌 스트림 생성에 필요한 데이터 인자로 전달 가능. 📌 두 개의 스트림을 하나의 스트림으로 생성 가능. 📄 StreamTest1.java package stream; import java.util.Arrays; public class StreamTest1 {.. 2022. 10. 21.
[Java] 함수형 인터페이스(Functional Interfaces) 함수형 인터페이스(Functional Interfaces) 📌 함수형 인터페이스(Functional Interfaces) : 추상 메소드 하나만 가지는 인터페이스. 📌 람다식은 함수형 인터페이스를 기반으로만 작성할 수 있음. 📌 @FunctionalInterface : 함수형 인터페이스에 부합하는 지 확인하기 위한 어노테이션 타입. 📌 static, default 선언은 함수형 인터페이스 정의에 영향을 주지 않음. 📌 제네릭으로 정의된 함수형 인터페이스를 대상으로 람다식 작성 가능. 📄 GenericLambdaTest.java package lambda; @FunctionalInterface interface Calculate { // 제네릭으로 정의된 함수형 인터페이스. T cal(T a, T b); .. 2022. 10. 20.
[Java] 람다(Lambda) 람다(Lambda) 📌 람다(Lambda)의 장점 ① 코드 줄일 수 있음. ② 가독성이 뛰어남. 📌 람다식(Lambda Expression) : 대입 연산자 오른편에 위치한 것. Printable prn = (s) -> { System.out.println(s); }; 📌 람다 연산자 : -> 📌 람다식은 함수형 인터페이스를 기반으로만 작성할 수 있음. 💡 함수형 인터페이스(Functional Interfaces) : 추상 메소드 하나만 가지는 인터페이스. 💡 람다와 익명 클래스는 내부적인 동작 원리가 다름 . 📄 LambdaAnonymousClassTest.java package lambda; interface Printable { void print(String s); } public class La.. 2022. 10. 20.
[Java] 네스티드 클래스(Nested Class)와 이너 클래스(Inner Class) 네스티드 클래스(Nested Class) 📌 네스티드 클래스(Nested Class) : 클래스 내에 정의된 클래스. 📌 외부 클래스(Outer Class) : 네스티드 클래스(Nested Class)를 감싸는 클래스. 📌 네스티드 클래스(Nested Class) 종류 : static 선언 여부 기준. ① Static 네스티드 클래스 ② Non-static 네스티드 클래스 = 이너 클래스(Inner Class) 📌 이너 클래스(Inner Class) 종류 : 클래스가 정의되는 위치, 특성에 따라 구분. 멤버 이너 클래스(Member Inner Class) 인스턴스 변수, 인스턴스 메소드와 동일한 위치에 정의된 이너 클래스. 로컬 이너 클래스(Local Inner Class) 중괄호 내, 메소드 내에 정의.. 2022. 10. 20.
[Java] 컬렉션 프레임워크 - Map<K, V> 인터페이스 Map 인터페이스 📌 Map 인터페이스를 구현하는 컬렉션 클래스 ① HashMap ② TreeMap : 트리 자료구조 기반으로 정렬 상태를 유지함. 📌 Map 인터페이스를 구현하는 컬렉션 클래스의 특징 ① Key와 Value가 한 쌍을 이루는 형태로 데이터 저장. 📌 Key는 중복 불가. Value는 중복 가능. HashMap 클래스 📌 HashMap 클래스는 public Set keySet()을 사용해 순차적 접근함. 📌 public Set keySet( ) : Set을 구현하는 컬렉션 인스턴스를 생성하고, 모든 Key를 담아 반환함. 📄 HashMapTest.java package map; import java.util.HashMap; import java.util.Iterator; import ja.. 2022. 10. 18.