아까 ArrayList 소팅 질문한앤대
못하고 있던 이유가 ArrayList<T> T가 Account고 A, B class 가 이걸 상속받고있어
그리고 다형성으로 Account = A생성, Account = B생성 이런식으로해서 ArrayList에 넣은거라 바로 비교가 불가했거든
그래서 Collections.sort 라는걸 찾았는데......... 블로그 보면서 깨작거리긴 했는데 어떨지
public class Manager {
protected static final Collator Collator = null;
ArrayList<Account> account;
ArrayList<Account> tempBankBook;
Manager(ArrayList<Account> account){
this.account = account;
for(int i=0; i<account.size(); ++i){
tempBankBook.add(account.get(i));
}
}
//이름순 정렬
private final static Comparator<Account> nameComparator = new Comparator<Account>(){
private final Collator collator = Collator.getInstance();
public int compare(Account o1, Account o2) {
return collator.compare(o1.name, o2.name);
}
};
public void nameSort(){
Collections.sort(tempBankBook, nameComparator);
}
//금액순 정렬
private final static Comparator<Account> balanceComparator = new Comparator<Account>(){
private final Collator collator = Collator.getInstance();
public int compare(Account o1, Account o2) {
return collator.compare(o1.balance, o2.balance);
}
};
public void balanceSort(){
Collections.sort(tempBankBook, balanceComparator);
}
//번호순 정렬
private final static Comparator<Account> numberComparator = new Comparator<Account>(){
private final Collator collator = Collator.getInstance();
public int compare(Account o1, Account o2) {
return collator.compare(o1.number, o2.number);
}
};
public void numberSort(){
Collections.sort(tempBankBook, numberComparator);
}
//타입순 정렬
private final static Comparator<Account> typeComparator = new Comparator<Account>(){
private final Collator collator = Collator.getInstance();
public int compare(Account o1, Account o2) {
return collator.compare(o1.type, o2.type);
}
};
public void typeSort(){
Collections.sort(tempBankBook, typeComparator);
}
정렬 부분만 보면 되거든............ Sort가 4종류로 나뉘어 있고 나름,,, 거기에 맞는 것들도 해줬어
근데 궁금한건 저 Collections.sort 에서 2번째 인자, 에 따라서 거기에 맞는 것이 실행이 되는거야 이상태로?
저기 굵게 표시한 저런부분때문에 질문하는겨
댓글 0