StreamEx 08-ソート()

13880 ワード

<Student class>

package day15;

public class Student implements Comparable<Student> {
	private String name; 
	private int score;
	public Student(String name, int score) {
		this.name = name; this.score = score; 
	}
	public String getName() {return name; }
	public int getScore() { return score; }
	
	// Comparable 인터페이스 추상메서드 오버라이딩 
	@Override
	public int compareTo(Student o) {
		return name.compareTo(o.name);
		//return Integer.compare(score, o.score);
		// score < o.score : 음수
		// score == o.score : 0
		// score > o.score : 양수 리턴 
	}
	
	
	
}


-----------------------------------------------------------------------
<StreamEx08 class>


package day15;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.IntStream;

public class StreamEx08 {
	public static void main(String[] args) {
		
		// 숫자 
		IntStream intStream = Arrays.stream(new int[] {5,3,2,4,1}); 
		intStream
		.sorted()
		.forEach(n -> System.out.println(n));
		System.out.println();
		
		// 객체 요소일 경우 
		List<Student> stdList = Arrays.asList(
				new Student("ccc", 20),
				new Student("bbb", 10),
				new Student("aaa", 30)
		);
		
		stdList.stream()
		.sorted()
		.forEach(s -> System.out.println(s.getScore() + " " + s.getName()));
		
		System.out.println();
		
		
		stdList.stream()
		.sorted(Comparator.reverseOrder())
		.forEach(s -> System.out.println(s.getScore() + " " + s.getName()));
		
		System.out.println();
		

		
	}
}