Hello

Java 스트림의 중간연산

by 볼빵빵오춘기

스트림의 중간연산

  • 스트림 자르기 - skin(), limit()
  • 스트림의 요소 걸러내기 - filter(), distinct()
  • 스트림 정렬하기 - sorted()
더보기

⇒ 정렬 시 필요 요소 : 1. 정렬 대상 2. 정렬 기준

 

  • Comparator의 comparing()으로 정렬 기준을 제공
  • 추가 정렬 기준을 제공할 떄는 themComparing()을 사용

 

예제 코드

더보기
import java.util.*;
import java.util.stream.*;

class Ex14_5 {
	public static void main(String[] args) {
		Stream<Student> studentStream = Stream.of(
						new Student("이자바", 3, 300),
						new Student("김자바", 1, 200),
						new Student("안자바", 2, 100),
						new Student("박자바", 2, 150),
						new Student("소자바", 1, 200),
						new Student("나자바", 3, 290),
						new Student("감자바", 3, 180)
					);

		studentStream.sorted(Comparator.comparing(Student::getBan) // 반별 정렬
		 	.thenComparing(Comparator.naturalOrder()))     	// 기본 정렬
			.forEach(System.out::println);
	}
}

class Student implements Comparable<Student> {
	String name;
	int ban;
	int totalScore;
	Student(String name, int ban, int totalScore) { 
		this.name =name;
		this.ban =ban;
		this.totalScore =totalScore;
	}

	public String toString() { 
	   return String.format("[%s, %d, %d]", name, ban, totalScore); 
	}

	String getName()     { return name;}
	int getBan()         { return ban;}
	int getTotalScore()  { return totalScore;}

   // 총점 내림차순을 기본 정렬로 한다.
	public int compareTo(Student s) { 
		return s.totalScore - this.totalScore;
	}
}

'👩🏻‍💻 About 프로그래밍 > Java' 카테고리의 다른 글

Java 스트림의 최종연산  (0) 2023.12.11
Java 스트림의 중간연산2  (0) 2023.12.11
Java 스트림의 연산  (0) 2023.12.11
Java 스트림 만들기  (1) 2023.12.11
Java 스트림(Stream), 스트림의 특징  (0) 2023.12.11

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기