본문 바로가기
웹프로그래밍/Java

Java HashMap의 자주 사용되는 메소드

by Seras 2017. 11. 22.
반응형

HashMap은 카운터가 필요할 때 매우 유용합니다.


HashMap<String, Integer> countMap = new HashMap<String, Integer>();   //.... a lot of a's like the following if(countMap.keySet().contains(a)){ countMap.put(a, countMap.get(a)+1); }else{ countMap.put(a, 1); }



1. HashMap을 통한 루프


Iterator it = mp.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry pairs = (Map.Entry)it.next();
    System.out.println(pairs.getKey() + " = " + pairs.getValue());
}

Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}



2. HashMap 인쇄하기


public static void printMap(Map mp) {
    Iterator it = mp.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry pairs = (Map.Entry)it.next();
        System.out.println(pairs.getKey() + " = " + pairs.getValue());
        it.remove(); // avoids a ConcurrentModificationException
    }
}


3. 값으로 HashMap 정렬


class ValueComparator implements Comparator<String> {
 
    Map<String, Integer> base;
 
    public ValueComparator(Map<String, Integer> base) {
        this.base = base;
    }
 
    public int compare(String a, String b) {
        if (base.get(a) >= base.get(b)) {
            return -1;
        } else {
            return 1;
        } // returning 0 would merge keys
    }
}

HashMap<String, Integer> countMap = new HashMap<String, Integer>();
//add a lot of entries
countMap.put("a", 10);
countMap.put("b", 20);
 
ValueComparator vc =  new ValueComparator(countMap);
TreeMap<String,Integer> sortedMap = new TreeMap<String,Integer>(vc);
 
sortedMap.putAll(countMap);  
 
printMap(sortedMap);


반응형

'웹프로그래밍 > Java' 카테고리의 다른 글

Java Strings  (0) 2017.11.22
Java Array  (0) 2017.11.22
Request, Response객체  (0) 2017.11.22
[ERROR] Ambiguous mapping found. Cannot map  (0) 2017.11.15
[SPRING] RequestMapping ... one,two 작성방법  (0) 2017.11.03