•
Student.java
package com.stream11;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class Student implements Comparable<Student> {
private String name;
private int score;
@Override
public int compareTo(Student o) {
return Integer.compare(score, o.score);
// return score - o.score;
}
}
Java
복사
•
Student.java
package com.stream11;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class Student implements Comparable<Student> {
private String name;
private int score;
@Override
public int compareTo(Student o) {
return Integer.compare(score, o.score);
// return score - o.score;
}
}
Java
복사
•
SortExample.java
package com.stream11;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class SortExample {
public static void main(String[] args) {
List<Student> sList = new ArrayList<>();
sList.add(new Student("박명수", 60));
sList.add(new Student("유재석", 100));
sList.add(new Student("정준하", 40));
sList.stream()
.sorted()
.forEach(s -> System.out.println(s));
System.out.println();
sList.stream()
.sorted(Comparator.reverseOrder()) // 역순으로 출력
.forEach(s -> System.out.println(s));
}
}
Java
복사
•
SortExample.java (람다식을 활용한 정렬)
package com.stream12;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class SortExample {
public static void main(String[] args) {
List<Student> sList = new ArrayList<>();
sList.add(new Student("박명수", 60));
sList.add(new Student("유재석", 100));
sList.add(new Student("정준하", 40));
sList.stream()
.sorted((s1, s2) -> s1.getScore() - s2.getScore())
.forEach(s -> System.out.println(s));
System.out.println();
sList.stream()
.sorted((s1, s2) -> s2.getScore() - s1.getScore())
.forEach(s -> System.out.println(s));
}
}
package com.stream12;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class Student {
private String name;
private int score;
}
Java
복사