HashMap의 Comparator 이용하기.
리스트 같은 경우는 그냥 Comparator를 사용하면 되지만
Map같은 경우는 List로 바꾸어 준 후 리턴 받아 바꾸어 주는게 좋다.
예)
main(){
HashMap<String,Integer> hm=new HashMap<String,Integer>();
Iterator iterator=SortByValue(hm).iterator();
while(iterator.hasNext()){
String temp = (String) iterator.next();
System.out.println(temp + " " + hm.get(temp));
}
}
private static List SortByValue(HashMap map)
{
List<String> list=new ArrayList<String>();
list.addAll(map.keySet());
Collection.sort(list,new Comparator(){
public int compare(Object o1,Object o2)
{
Object v1=map.get(o1);
Object v2=map.get(o2);
return ((Comparable) v1).compareTo(v2);
}
}
}
Map같은 경우는 List로 바꾸어 준 후 리턴 받아 바꾸어 주는게 좋다.
예)
main(){
HashMap<String,Integer> hm=new HashMap<String,Integer>();
Iterator iterator=SortByValue(hm).iterator();
while(iterator.hasNext()){
String temp = (String) iterator.next();
System.out.println(temp + " " + hm.get(temp));
}
}
private static List SortByValue(HashMap map)
{
List<String> list=new ArrayList<String>();
list.addAll(map.keySet());
Collection.sort(list,new Comparator(){
public int compare(Object o1,Object o2)
{
Object v1=map.get(o1);
Object v2=map.get(o2);
return ((Comparable) v1).compareTo(v2);
}
}
}
댓글
댓글 쓰기