스트링의 중간연산 예제
Stream<T> skip (long n) //앞에서부터 n개 뛰어넘기
Stream<T> limit (long maxsize) //maxsize 이후에 요소는 잘라냄
IntStream intStream = IntStream.rangeClosed(1,10) //12345678910
intStream.skip(3).limit(5).forEach(system.out.println("")) //45678
//.skip(3) 앞에서 3개 건너 뛰기 45678910
//.limit(5) 앞에서부터 5개 만 가져오기 45678
IntStream intStream = IntStream.of(1,2,2,3,3,3,4,5,5,6)
intStream.distinct().forEach(system.out.println("")) //123456
//.distinct() 중복제거 123456
IntStream intStream = IntStream.rangeClosed(1,10) 12345678910
intStream.filter(i -> i%2 ==0).forEach(system.out.println("")) //246810
//.filter(i -> i%2 ==0) //2 4 6 8 10 //조건에 맞지 않으면 제거
intStream.filter(i -> i%2 !=0 && i %3 !=0).forEach(system.out.println(""))
//.filter(i -> i%2 !=0 && i %3 !=0) 1 5 7
intStream.filter(i -> i%2 != 0).filter(i -> i%3 !=0).forEach(system.out.print(""))
//.filter(i -> i%2 != 0) 1 3 5 7 9
//.filter(i -> i%3 != 0) 1 5 7
Stream<T> sorted() //정렬 기준이 없으면 스트림이 가지고 있는 기본 정렬로 정렬된다.
Stream<T> sorted(comparator <? super T> comparator) //지정된 comparator
StrStream.sorted() //기본정렬
StrStream.sorted(comparator.raturalOrder()) //기본정렬
StrStream.sorted((s1, s2) -> s1.compareTo(s2))
StrStream.sorted(String::compareTo) // 매서드 참조 , 위문장과 동일
StrStream.sorted(comparator.reverseOrder()) //기본정렬의 역순
StrStream.sorted(comparator.<String>naturalOrder().reversed())
StrStream.sorted(String.CASE_INSESTIVE_ORDER) //대소문자 구분안함
StrStream.sorted(String.CASE_INSESTIVE_ORDER.reversed())
StrStream.sorted(comparator.comparing(String::length)) //길이순 정렬
StrStream.sorted(comparator.comparingInt(String::length)) //no으로 박싱
StrStream.sorted(comparator.compuring(String ::length).reversed())
Comparator 와 paring() 으로 정렬기준을 제공
Comparing(function <T,U> keyExtractor)
Comparing(function <T,U> keyExtractor , comparator<U> keyComparator)
studendStream.sorted(comparator.comparing(student::getBan).forEach(system::pringln));
추가 정렬 기준을 제공할 때는 thenComparing()을 사용
thenComparing(comparing<T> other)
thenComparing(function<T,U> keyExtractor)
thenComparing(function<T,U> keyExtractor , Comparator<U> keyComp)
StudentStream.sorted(comparator.comparing(student::getBan)// 반별로 정렬
.thenComparing(student::getTotalScore) //성적별 정렬
.thenComparing(student::getName) //이름으로 정렬
.forEach(system::pringln)
)
'JAVA' 카테고리의 다른 글
스트림6 peek() 스트림소모 없이 요소 조회 (0) | 2023.03.16 |
---|---|
스트림5 map() 스트림의 내용 변환 (0) | 2023.03.16 |
스트림3 스트림의 최종연산 (0) | 2023.03.15 |
스트림2 스트림의 중간연산 (0) | 2023.03.15 |
스트림1 스트림의 특징 (0) | 2023.03.15 |