Java 148

149. 스트림의 그룹화와 분할 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 스트림의 그룹화와 분할partitioningBy()는 스트림을 2분할한다.Collector partitioningBy(Predicate predicate)Collector partitioningBy(Predicate predicate, Collector downstream)groupingBy()는 스트림을 n분할한다.Collector groupingBy(Function classifier)Collector groupingBy(Function classifier, Collector downstream)Collector groupingBy(Function classifier, Supplier mapFactory, Collector downstream) 2. 스트림의 분할 - partitioningBy(..

Java 2025.01.12

148. collect()와 Collectors - 패스트캠퍼스 백엔드 부트캠프 3기

1. collect()와 Collectorscollect()는 Collector를 매개변수로 하는 스트림의 최종연산Object collect(Collector collector) // Collector를 구현한 클래스의 객체를 매개변수로Object collect(Supplier supplier, BiConsumer accumulator, BiConsumer combiner) // 잘 안쓰임Collector는 수집(collect)에 필요한 메서드를 정의해 놓은 인터페이스public interface Collector { // T(요소)를 A에 누적한 다음, 결과를 R로 변환해서 반환 Supplier supplier(); // StringBuilder::new 누적할 곳 BiConsumer ..

Java 2025.01.12

147. 스트림의 최종연산 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 스트림의 최종연산 - forEach()스트림의 모든 요소에 지정된 작업을 수행 - forEach(), forEachOrdered()void forEach(Consumer action) // 병렬스트림인 경우 순서가 보장되지 않음void forEachOrdered(Consumer action) // 병렬스트림인 경우에도 순서가 보장됨// sequential() - 직렬 스트림IntStream.range(1, 10).sequential().forEach(System.out::print); // 123456789IntStream.range(1, 10).sequential().forEachOrdered(System.out::print); // 123456789// parallel() - 병렬 스트림Int..

Java 2025.01.12

146. Optional<T> - 패스트캠퍼스 백엔드 부트캠프 3기

1. OptionalT타입 객체의 래퍼클래스 - Optionalpublic final class Optional { private final T value; // T타입의 참조변수}Optional 객체를 생성하는 다양한 방법String str = "abc";Optional optVal = Optional.of(str);Optional optVal = Optional.of("abc");Optional optVal = Optional.of(null); // NullPointerException발생Optional optVal = Optional.ofNullable(null); // OKnull대신 빈 Optional 객체를 사용하자Optional optVal = null; // null로 초기화 바람직..

Java 2025.01.12

145. 스트림의 중간연산(2) - 패스트캠퍼스 백엔드 부트캠프 3기

1. 스트림의 중간연산스트림의 요소 변환하기 - map()Stream map(Function mapper) // Stream -> StreamStream fileStream = Stream.of(new File("Ex1.java"), new File("Ex1"), new File("Ex1.bak"), new File("Ex2.java"), new File("Ex1.txt"));Stream filenameStream = fileStream.map(File::getName);filenameStream.forEach(System.out::println); // 스트림의 모든 파일의 이름을 출력파일 스트림(Stream)에서 파일 확장자(대문자)를 중복없이 뽑아내기fileStream.map(File::getNam..

Java 2025.01.11

144. 스트림의 중간연산 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 스트림의 중간연산스트림 자르기 - skip(), limit()Stream skip(long n) // 앞에서부터 n개 건너뛰기Stream limit(long maxSize) // maxSize 이후의 요소는 잘라냄IntStream intStream = IntStream.rangeClosed(1, 10); // 1~10, 10포함intStream.skip(3).limit(5).forEach(System.out::print); // 45678스트림의 요소 걸러내기 - filter(), distinct()Stream filter(Predicate predicate) // 조건에 맞지 않는 요소 제거Stream distinct() // 중복제거IntStream intStream = IntStrea..

Java 2025.01.10

143. 스트림의 연산 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 스트림의 연산스트림이 제공하는 기능 - 중간 연산과 최종 연산중간 연산중간 연산설명Stream distinct()중복을 제거Stream filter(Predicate predicate)조건에 안 맞는 요소 제외Stream limit(long maxSize)스트림의 일부를 잘라낸다.Stream skip(long n)스트림의 일부를 건너뛴다.Stream peek(Consumer action)스트림의 요소에 작업수행Stream sorted()Stream sorted(Comparator comparator)스트림의 요소를 정렬한다.StreamDoubleStream IntStreamLongStreamStreamDoubleStreamIntStreamLongStream map(Function mapper)map..

Java 2025.01.10

142. 스트림만들기 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 스트림 만들기 - 컬렉션Stream stream() // Collection인터페이스의 메서드List list = Arrays.asList(1,2,3,4,5);Stream intStream = list.stream(); // list를 스트림으로 변환// 스트림의 모든 요소 출력intStream.forEach(System.out::print); // 12345intStream.forEach(System.out::print); // 에러. 스트림이 이미 닫혔다. 2. 스트림 만들기 - 배열// 객체 배열롭터 스트림 생성하기Stream Stream.of(T... values) // 가변 인자Stream stream.of(T[])Stream Arrays.stream(T[])Stream Arrays.str..

Java 2025.01.10

141. 스트림, 스트림의 특징 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 스트림(Stream) - 스트림 만들기 -> 중간 연산(0~n번) -> 최종연산(0~1번)다양한 데이터 소스(컬렉션, 배열)를 표준화된 방법으로 다루기 위한 것List list = Arrays.asList(1,2,3,4,5);Stream intStream = list.stream(); // 컬렉션.Stream strStream = Stream.of(new String[]{"a", "b", "c"}); // 배열Stream evenStream = Stream.iterate(0, n->n+2); // 0,2,4,6, ...Stream randomStream = Stream.generate(Math::random); // 람다식IntStream intStream = new Random().ints(5)..

Java 2025.01.10

140. 메서드 참조, 생성자의 메서드 참조 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 메서드 참조하나의 메서드만 호출하는 람다식은 '메서드 참조'로 더 간단히 할 수 있다.종류람다메서드 참조static메서드 참조(x) -> ClassName.method(x)ClassName::method인스턴스메서드 참조(obj, x) -> obj.method(x)ClassName::method특정 객체 인스턴스메서드 참조(x) -> obj.method(x)obj::methodstatic메서드 참조Integer method(String s) { return Integer.parseInt(s);}// 람다Function f = (String s) -> Integer.parseInt(s);// 메서드 참조Function f = Integer::parseInt; 2. 생성자의 메서드 참조Suppli..

Java 2025.01.10