java에서 sorting을 해야하는경우 유용하게 사용할듯 싶습니다.
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
/**
* map 정렬 클래스
*
*/
public class MapSortUtil implements Comparator {
Map base;
public MapSortUtil(Map base) {
this.base = base;
}
// Note: this comparator imposes orderings that are inconsistent with equals.
public int compare(String a, String b) {
if (base.get(a) >= base.get(b)) {
return -1;
} else {
return 1;
} // returning 0 would merge keys
}
/**
* 정렬된 순서의 key를 반환합니다.
* @param sorted_map
* @return
*/
public ArrayList getSortKeyList(TreeMap sorted_map){
if(sorted_map == null) return null;
ArrayList keyList = new ArrayList();
Iterator iter = sorted_map.keySet().iterator();
String key;
while(iter.hasNext())
{
key = (String) iter.next();
keyList.add(key);
}
return keyList;
}
public static void main(String args[]){
//정렬 기준맵
HashMap sortMap = new HashMap();
MapSortUtil msu = new MapSortUtil(sortMap);
TreeMap sorted_map = new TreeMap(msu);
sortMap.put("A", 0.9);
sortMap.put("B", 1d);
sortMap.put("C", 0.8);
sortMap.put("D", 4d);
sorted_map.putAll(sortMap);
for(String key : msu.getSortKeyList(sorted_map))
{
System.out.println("key : " + key +" value : "+sortMap.get(key));
}
}
}
결과
key : D value : 4.0 key : B value : 1.0 key : A value : 0.9 key : C value : 0.8
'JAVA/JSP' 카테고리의 다른 글
쿠팡 SDK(API)를 활용하여 자동으로 품절처리 하기 (2) | 2020.12.10 |
---|