본문 바로가기

Java

(3)
[스트림 활용] 중간 연산 중간 연산 생성된 스트림을 필터링하거나 원하는 형태로 가공하는 과정 중간 연산은 스트림을 반환하기 때문에 여러 작업을 이어서 호출하는 Chaining이 가능하다. 스트림 필터링 filter 스트림 내 요소들을 특정 조건(predicate)에 맞게 걸러낸 요소만으로 구성된 새로운 스트림 반환 조건에 해당하는 Predicate 를 인자로 받는다. 더보기 매개변수 하나를 입력받아 boolean 타입으로 반환하는 함수형 인터페이스 조건식을 표현하는데 사용된다. List language = Arrays.asList("java", "kotlin", "python", "c", "go"); language.stream().filter(s -> s.contains("o")).forEach(lang -> System.ou..
[스트림 활용] 생성 Java 8 Stream API 활용 스트림 생성 스트림은 배열, 컬렉션, 기본 타입, 스트림(파일 스트림, 병렬 스트림) 등을 통해 생성할 수 있다. 또한 Stream API가 제공하는 builder(), generate(), iterate() 등의 메소드를 이용하면 Stream을 생성할 수 있다. Empty Stream 빈 스트림 생성도 가능하다. Stream.empty(); Collection list, map, set 등의 타입을 이용해 생성할 수도 있다. String[] language = {"java", "kotlin", "python", "c", "go"}; List languageList = Arrays.asList(language); Stream listStream = languageLi..
[Effective Java 7장] 람다 Effective Java 7장 들어가기 전 사실 Java를 아직도 잘 모르지만, Java 8을 기점으로 큰 변화가 있었다는 건 많이 들었다. 그 대표 격이 람다와 스트림인데, 이게 무엇이며 왜 등장하게 되었는지 먼저 살펴보기로 했다. Java는 객체 지향 프로그래밍에 쓰이는 대표적인 언어이며, Object가 일급 시민(First-class citizen)의 역할을 한다. 일급 시민이란? 인자로 전달이 가능하다 반환 값으로 사용할 수 있다. 변수나 데이터 구조 안에 담을 수 있다 위 조건으로 보았을 때 Java의 method는 일급 시민이 될 수 없다. 하지만 함수가 일급 시민 역할을 하는 함수형 프로그래밍이 대세로 떠오르면서 Java에도 변화가 찾아왔다. 모던 자바라고 불리는 Java8에서는 함수를 일..