Map의 값(value)으로 정렬한 소스 입니다.
현재 내림차순 입니다. 오름차순으로 하실분은 43라인의 부등호를 반대로 하세요.
키로 정렬하실 분은 http://huskdoll.tistory.com/5 을 확인하세요.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import java.util.Comparator; import java.util.HashMap; import java.util.Map; import java.util.TreeMap; public class MapValueSort { public static void main(String[] args) { // TODO Auto-generated method stub HashMap<String,Integer> map = new HashMap<String,Integer>(); ValueComparator bvc = new ValueComparator(map); TreeMap<String,Integer> sorted_map = new TreeMap<String,Integer>(bvc); map.put("test3", 6); map.put("test4", 8); map.put("test5", 3); map.put("test1", 1); map.put("test2", 5); sorted_map.putAll(map); for (Map.Entry<String,Integer> entry : sorted_map.entrySet()) { //정렬한 리스트에서 순번을 배열번호로 변경하여 원본 리스트에서 추출 System.out.println(entry.getKey()+" : "+map.get(entry.getKey())); } } } class ValueComparator implements Comparator<String> { Map<String, Integer> base; public ValueComparator(Map<String, Integer> 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 } } |
자바 파일명 변경 (이미지 이름변경) (0) | 2015.03.31 |
---|---|
BigDecimal 숫자 형변환 (0) | 2015.03.13 |
자바 리스트 안에 맵 값 정렬 (java list map value sort) (0) | 2015.03.04 |
java submit html form (0) | 2015.02.17 |
파일 인코딩 변경 (복사) (0) | 2014.06.20 |
댓글 영역