JAVA
스트림의 중간연산(1)
스트림의 중간연산(1)
2022.11.19스트림의 중간연산 스트림 자르기 - skip(), limit() skip()은 스트림의 요소중에 앞에서부터 n개 건너뛰는 것이다. limit()은 지정된 값 이후의 요소는 잘라낸다. .rangeClosed()는 to가 포함이다. 그래서 스트림 요소가 1부터 10이다. 여기서 skip(3)을 하면, 3개를 건너띄고, .limit(5)로 5개를 자르면, 4, 5, 6, 7, 8 이고 이렇게 5개만 담긴 스트림을 반환한다. 그리고 그 요소를 forEach(System.out::print)로 출력하니까 45789이 나온다. 스트림의 요소 걸러내기 - filter(), distinct() filter()는 조건에 맞지 않는 요소를 제거한다. 파라미터로 조건식을 준다. distinct()는 중복을 제거한다. 예를 ..
스트림의 연산
스트림의 연산
2022.11.16스트림의 연산 스트림이 제공하는 기능 - 중간 연산과 최종 연산 1. 스트림 만들기 2. 중간 연산 (n번) 3. 최종 연산 (1번) 중간연산은 연산 결과가 스트림이다. 반복적으로 적용할 수 있다. 최종연산은 연산 결과가 스트림이 아닌 연산이다. 단 한번만 적용이 가능하다.(스트림의 요소를 소모) 그래서 만약 최종연산 이후에 뭔가 더 다른 작업을 하고 싶다면, 스트림을 새로 생성해서 진행해야 한다. 스트림의 연산 - 중간 연산 distinct()는 중복을 제거하는 메서드다. filter(Predicate predicate)는 매개변수로 조건식을 주면 조건에 안 맞는 요소는 제외하고 조건에 맞는 것만 남겨주는 메서드다. limit()는 스트림의 일부를 잘라내는 메서드다. skip()은 스트림의 일부를 건너..
스트림 만들기
스트림 만들기
2022.11.15스트림 만들기 - 컬렉션 1. 스트림 생성. 2. 중간 연산(0~n번) 3. 최종 연산 (0~1번) Collection 인터페이스의 stream() 으로 컬렉션을 스트림으로 변환 Collection 인터페이스에 stream() 이라는 메서드가 있는데, stream()은 컬렉션을 스트림으로 만들어서 반환해준다. Collection 인터페이스의 자손인 List와 Set 두 인터페이스를 구현한 Collection 클래스가 stream() 메서드를 가지고 있다 1, 2, 3, 4, 5가 저장되어 있는 list가 있을 때, 해당 list 에다가 .stream() 만 호출하면 스트림을 얻을 수 있다. 그리고 해당 stream으로부터 모든 요소를 출력하려면 forEach()를 사용하면 된다. 그 안에 System.o..
스트림, 스트림의 특징
스트림, 스트림의 특징
2022.11.14스트림(Stream) 다양한 데이터 소스(컬렉션, 배열)를 표준화된 방법으로 다루기 위한 것 CollectionFramwork 는 List, Set, Map 등 다양한 컬렉션 클래스들을 표준화된 방법으로 다루려고 정리한 것이다. 그런데, 사실 실패했다. 왜냐하면, List,Set 과 Map이 성격이 달라서 사용방법이 달랐기 때문이다. 그러니깐, 말만 표준화지, 반쪽짜리 표준화였던 것이다. 그런데, 드디어 JDK1.8부터는 스트림 이라는 것이 나와서 정말로 진정한 통일이 되었다. 다양한 데이터소스를 다루는 방법이 정말로 통일 되었다. 그래서 컬렉션에는 List, Set, Map 이 있고, 배열이 있는데, 이러한 다양한 데이터 소스로부터 Stream을 만들 수 있다. 일단 Stream을 만들고나면, 똑같은 ..
메서드 참조, 생성자의 메서드 참조
메서드 참조, 생성자의 메서드 참조
2022.08.05메서드 참조(method reference) 하나의 메서드만 호출하는 람다식은 '메서드 참조'로 간단히 할 수 있다. 메서드 참조는, 람다식을 더 간단히 한 것이다. 람다식도 메서드를 줄여서 쓴것이므로 간단하지만, 메서드 참조로 더 간단히 할 수 있다. 메서드 참조는 클래스이름::메서드이름 이렇게 사용한다. 메서드 참조에는 3가지가 있다. static메서드 참조 인스턴스메서드 참조 특정 객체 인스턴스메서드 참조 (이건 거의 사용 안함) ClassName::method 는 메서드 참조라는 것을 기억하자. static메서드 참조 static메서드 참조 케이스에 대해서 알아보자. 예를 들어서 이러한 method가 있을 때, String s 넣으면 Integer.parseInt(s)를 해서 Integer를 반환..
Predicate의 결합, 컬렉션 프레임웍과 함수형 인터페이스
Predicate의 결합, 컬렉션 프레임웍과 함수형 인터페이스
2022.08.04Predicate의 결합 and(), or(), negate()로 두 Predicate를 하나로 결합(default메서드) Predicate는 조건식이다. 함수가 있을 때, 그 결과가 boolean으로 나오는 것이다. Predicate 여러개를 하나로 결합할 수 있다. 논리연산자로 결합할 수 있다. negate()는 not인데, true를 false로 false를 true로 바꿔주는 연산자라고 생각하면 쉽다. 그래서 이렇게 3개의 Predicate가 있을 때, 각각 1개씩 조건식이 있어서 3개가 있는데, 이 조건식들을 and, or, negate를 가지고 결합할 수 있다. 인터페이스가 가질 수 있는 메서드는 default 메서드 static 메서드 추상 메서드 이렇게 3가지를 가질 수 있는데, 인터페이스..