티스토리 뷰
반응형
자바의 정석 ch14 26~29 스트림의 중간연산(1)
1. 스트림의 중간연산 스트림 자르기(1/7)
가. skip()
해설 : 앞에서부터 n개 건너뛴다.
사용법 :
Stream<T> skip(long n);
나. limit()
해설 : maxSize 이후의 요소는 잘라낸다.
사용법 :
Stream<T> limit(long maxSize)
예제 :
IntStream intStream = IntStream.rangeClosed(1, 10); // 12345678910
intStream.skip(3).limit(5).forEach(System.out::print) //45678
2. 스트림의 중간연산 스트림의 요소 걸러내기(2/7)
가. distinct()
해설 : 중복제거
사용법 :
Stream<T> distinct()
예제 :
IntStream intStream = IntStream.of(1,2,2,3,4,5,5,6,7,7,7);
intStream.distinct().forEach(System.out::print); //1234567
나. filter()
해설 : 조건에 맞는 데이터만 남기고 모두 제거
사용법 :
Stream<T> filter(조건식)
예제 :
// filter 중간연산자 2번사용해서 2,3의 배수
IntStream intStream = IntStream.rangeClosed(1, 10);
intStream.filter(i->i%2==0).filter(i->i%3==0).forEach(System.out::print);
// filter안에 and 조건 사용하기
IntStream intStream = IntStream.rangeClosed(1, 10);
intStream.filter(i->i%2==0 && i%3==0).forEach(System.out::print);
3. 스트림의 중간연산 스트림의 요소 걸러내기(3/7)
가. sorted()
해설 : 해당 정렬조건에 맞게 정렬한다.
사용법 :
Stream<T> sorted();
Stream<T> sorted(비교조건);
문자열 스트림 정렬 방법 | 출력결과 |
---|---|
strStream.sorted() //기본정렬 strStream.sorted((s1, s2) -> s1.compareTo(s2)) //람다식도 가능 strStream.sorted(String::compareTo); //위 문장과 동일 |
CCaaabccdd |
strStream.sorted(Comparator.reverseOrder()) //기본 정렬의 역순 | ddccbaaaCC |
strStream.sorted(String.CASE_INSENSITICE_ORDER) //대소문자 구분안함 | aaabCCccdd |
strStream.sorted(String.CASE_INSENSITICE_ORDER.reversed()) //대소문자 구분안함 | ddCCccbaaa |
strStream.sorted(Comparator.comparing(String::length)) // 길이순 정렬 strStream.sorted(Comparator.comparingInt(String::length)) //no오토박싱 |
bddCCccaaa |
▶︎ Comparator의 comparing()으로 정렬 기준을 제공
studentStream.sortede(Comparator.comparing(Student::getBan)) // 반별로 정렬
.forEach(System.out::print)
▶︎ 추가 정렬 기준을 제공할 때는 thenComparing()을 사용
studentStream.sortede(Comparator.comparing(Student::getBan)) // 반별로 정렬
.thenComparing(Student::getTotalScore) // 총점별로 정렬
.thenComparing(Student::getName) // 이름별로 정렬
.forEach(System.out::print)
Student::getBan
--> 람다식으로 변경
(Student s) -> 참조변수.getBan()
--> (Student s) -> s.getBan()
결과 :
1.반에따라 역순정렬
2. 오름차순
[1금빛, 3, 300]
[6금빛, 3, 290]
[7금빛, 3, 180]
[4금빛, 3, 150]
[3금빛, 2, 100]
[2금빛, 1, 200]
[5금빛, 1, 200]
반응형
'java_basic' 카테고리의 다른 글
Lambda 기초5 최종연산 reduce (0) | 2022.02.16 |
---|---|
Lambda 기초4 중간연산2 (0) | 2022.02.16 |
Lambda 기초3 (스트림 중간연산/최종연산 전체 메소드) (0) | 2022.02.01 |
Lambda 기초2 (스트림 생성하기) (0) | 2022.02.01 |
Lambda 기초1 (2) | 2022.02.01 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- webpack
- lambda
- 람다
- ApplicationContext
- NPM
- MAC
- stream
- docker
- 스트림
- Vuex
- container
- nginx
- 영속성 컨텍스트
- java
- AnnotationConfigApplicationContext
- JPA
- vscode
- mvn
- 차이
- map
- install
- Vue
- springboot
- 최종연산
- elasticsearch
- BeanFactory
- Intellij
- 자바8
- 중간연산
- ngnix
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함