티스토리 뷰
import java.util.ArrayList; // ArrayList 타입을 사용하기 위한 import
import java.util.Collections; // Collections 객체를 사용하기 위한 import
import java.util.Comparator; // Comparator를 사용한기 위한 import
public class Employee
{
/*
Employee 객체의 생성자 함수
수개의 String을 입력받아 name과 nickname에 값을 넣어준다
*/
public Employee(String n, String m){
this.name= n;
this.nickName = m;
}
// getName 메소드
public String getName(){
return name;
}
// getNickName 메소드
public String getNickName(){
return nickName;
}
private String name;
private String nickName;
}
class SortingTest
{
public static void main(String[] args){
/* ArrayList타입의 Employee를 생성시키며 인스턴스 이름은 list로 선언한다 */
ArrayList<Employee> list = new ArrayList<Employee>();
/* 생성된 list에 데이터를 입력한다. 입력된 데이터는 Employee 타입으로 name과 nickname으로 각기 입력된다. */
list.add(new Employee("김승권", "제임스딘"));
list.add(new Employee("홍승우", "얜잠만자"));
list.add(new Employee("김희경", "울반홍일점"));
list.add(new Employee("신용일", "아졸려라"));
/* name을 비교하기위한 nameComp 인스턴스 생성 */
EmpNameCompare nameComp = new EmpNameCompare();
/* nickname을 비교하기 위한 nickComp 인스턴스 생성 */
EmpNickCompare nickComp = new EmpNickCompare();
Collections.sort(list, nameComp);
// Collections 객체는 Collection 타입의 객체를 핸들링하는 개체이다.
sort는 기본적으로 두가지 기능을 갖추고 있는데 Collection타입의 인스턴스를 가질 때와 Collection 타입의 인스턴스와 compare 기능을 소유한 인스턴스를 가질 때이다.
sort(Collection 타입의 인스턴스) 일때에는 그 인스턴스의 내부 compare를 사용하고, sort(collection 타입의 인스턴스, compare 인스턴스) 일 때에서는 compare타입의 인스턴스 내부 타입을 사용하여 비교하여 소트한다.
객체는 자동으로 compare 인스턴스를 호출하고 내부적으로 sort하게 된다. 외형적으로 변하는 것은 아무것도 없다.
for(Employee e : list){
System.out.println("데스노트 1 : " + e.getName() + "\t\t" + e.getNickName());
}
System.out.println("-------------------------------");
Collections.sort(list, nickComp);
for(Employee e : list){
System.out.println("데스노트 2: " + e.getNickName() + "\t\t" + e.getName());
}
}
}
class EmpNameCompare implements Comparator<Employee>
{
public int compare(Employee e1, Employee e2){
return e1.getName().compareTo(e2.getName());
}
}
class EmpNickCompare implements Comparator<Employee>
{
public int compare(Employee e1, Employee e2){
return e1.getNickName().compareTo(e2.getNickName());
}
}
- Total
- Today
- Yesterday
- 오라클
- 문자열
- DB링크
- 셋업
- 팝업
- 리사이즈
- 정규식
- Setup
- 크롬
- SQL
- 아이프레임
- ajax
- 디비링크
- 스크립트
- 이벤트
- 에누리
- height
- width
- unique
- 프로시져
- onblur
- 제약조건
- 배열 변환
- scrollHeight
- MSSQL
- 프로시저
- 이벤트 상속
- 윈도우 인증
- 연차
- NSIS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |