| sitelink1 | https://mandolle7.blog.me/220139365293 | 
|---|---|
| sitelink2 | |
| sitelink3 | |
| sitelink4 | |
| sitelink5 | |
| sitelink6 | 
일반적인 list나 Map 형태의 데이터를 정렬하는 것은 쉽게 검색하실 수 있으실껍니다.
Comparable 을 implements 해서 CompareTo 메소드를 구현해가지고
Collections.sort(list) 를 하면 쉽게 데이터를 정렬하실 수 있으실 텐데요.
저는 List<Map<String, String>> 이런 이중구조로 되어 있는 데이터를 정렬하려고 합니다.
데이터를 넣는 과정은 생략하겠습니다...
...
반복문을 돌면서
map.put(key, value); ...
map 구조에 키, 밸류 데이터를 넣고
list.add(map); 을 해서 list 에 Map<String, String> 형식의 데이터가 들어갔다고 예를들겠습니다.
| 1 | Collections.sort(list, orderSort); | 
위와 같이 list라는 데이터를 orderSort 라는 Comparator 로 정렬하겠다는 뜻입니다.
그럼 orderSort라는 Comparator 메소드를 구현해야 합니다.
| 1 2 3 4 5 6 7 8 9 10 11 12 | /**      * PlayOrder 순으로 List<Map> 정렬하기              */     private final static Comparator<Map<String,String>> orderSort = new Comparator<Map<String,String>>() {         private final Collator collator = Collator.getInstance();         @Override         public int compare(Map<String, String> lhs, Map<String, String> rhs) {             // TODO Auto-generated method stub             return collator.compare(lhs.get("playorder"),  rhs.get("playorder"));         }     }; | 
짜잔.
끝입니다.
정렬을 정말 간단하게 끝냈네요.
저는 Map key 값이 playorder 가 오름차순으로 정렬되게끔 하였습니다.
저처럼 list<Map<String, String>> 이중구조가 아니라 List<String> 구조라면
comparator<String> ... = new Comparator<String>() { ....
이런식으로 하시면 됩니다.
[출처] [JAVA] Comparator를 이용한 Collections.Sort 정렬 (list<map<>>)|작성자 종벌
[별첨 샘플코드]
Comparator<Task> comparator = new Comparator<Task>() {
private final Collator collator = Collator.getInstance();
@Override
public int compare(Task o1, Task o2) {
return collator.compare(o1.getDate_due(), o2.getDate_due()); //역순인 경우엔 (* -1)
}
};
Collections.sort(readyList, comparator);
 
							
