아래 예제를 보시면 이해 되실 겁니다.
감사합니다.
package onj;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class OracleJavaCommunity {
private String
name;
private int
age;
public String
getName() {
return
name;
}
public void
setName(String name) {
this.name =
name;
}
public int
getAge() {
return
age;
}
public void
setAge(int age) {
this.age =
age;
}
public String
toString() {
return "[name :
" + name + ", age=" + age + " ]";
}
}
//이름으로 정렬
class OjcSortByName {
public int
compare(OracleJavaCommunity ojc1, OracleJavaCommunity ojc2) {
return
ojc1.getName().compareTo(ojc2.getName());
}
}
//나이로 정렬
class OjcSortByAge {
public int
compare(OracleJavaCommunity ojc1, OracleJavaCommunity ojc2) {
return
ojc1.getAge() - ojc2.getAge();
}
}
public class LambdaTest2 {
public static
void main(String[] args) {
OracleJavaCommunity ojc1 = new
OracleJavaCommunity();
OracleJavaCommunity ojc2 = new
OracleJavaCommunity();
OracleJavaCommunity ojc3 = new
OracleJavaCommunity();
ojc1.setName("오라클");
ojc1.setAge(15);
ojc2.setName("자바");
ojc2.setAge(9);
ojc3.setName("닷넷");
ojc3.setAge(8);
List ojcs = new
ArrayList();
ojcs.add(ojc1);
ojcs.add(ojc2);
ojcs.add(ojc3);
// 원본 출력, double
colon 연산자이용
ojcs.forEach(System.out::println);
System.out.println("---------------------");
// age로
정렬1
Collections.sort(ojcs, (OracleJavaCommunity
ojc4,
OracleJavaCommunity ojc5) -> {
return
ojc4.getAge() - ojc5.getAge();
});
//정렬후 출력1
ojcs.forEach(System.out::println);
//이름(name)으로
정렬2
OjcSortByName
sortOjc = new OjcSortByName();
Collections.sort(ojcs,
(OracleJavaCommunity ojc6, OracleJavaCommunity
ojc7)
->
sortOjc.compare(ojc6, ojc7));
//이름정렬후
출력2
System.out.println("---------------------");
ojcs.forEach(System.out::println);
//나이(age)로
정렬3
OjcSortByAge
sortOjc2 = new OjcSortByAge();
Collections.sort(ojcs, sortOjc2::compare);
//나이정렬후
출력3
System.out.println("---------------------");
ojcs.forEach(System.out::println);
}
}
[결과]
[name : 오라클, age=15 ]
[name : 자바, age=9 ]
[name : 닷넷, age=8 ]
---------------------
[name : 닷넷, age=8 ]
[name : 자바, age=9 ]
[name : 오라클, age=15 ]
---------------------
[name : 닷넷, age=8 ]
[name : 오라클, age=15 ]
[name : 자바, age=9 ]
---------------------
[name : 닷넷, age=8 ]
[name : 자바, age=9 ]
[name : 오라클, age=15 ]
댓글 없음:
댓글 쓰기