아..주 기본적인것만 다뤄본다..
선언방법
HashMap<K, V> hashmap = new HashMap<>();
삽입
hashmap.put(key, value)
조회
hashmap.get(key)
키 포함여부
hashmap.containsKey(key)
해시맵 정렬
1. 키가 문자열일 때 키 기준으로 오름차순 정렬
- key를 배열에 저장하여 정렬
Object[] key = hashMap.keySet().toArray();
Arrays.sort(key);
for(Object s : key) {
if(hashMap.get(s))
bw.write(s+"\n");
}
2. 키가 문자열, 값이 정수형일 때 먼저 값을 기준으로 내림차순으로 정렬하고 값이 같을 때는 키를 오름차순으로 정렬
- map을 list에 저장하여 정렬
List<Map.Entry<String, Integer>> enrtyList = new LinkedList<>(hashmap.entrySet());
enrtyList.sort(new Comparator<Map.Entry<String, Integer>>() {
int ret = 0;
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
if (o1.getValue() == o2.getValue()){
if(o1.getKey().compareTo(o2.getKey()) < 0) {
ret = -1;
} else if(o1.getKey().compareTo(o2.getKey()) == 0) {
ret = 0;
} else if(o1.getKey().compareTo(o2.getKey()) > 0) {
ret = 1;
}
} else {
ret = o2.getValue() - o1.getValue();
}
return ret;
}
});
- 문자열의 compareTo
기준값.compareTo(비교값)
: 서로 문자열 길이의 차이값을 리턴
- 양수 : 기준값이 사전순으로 뒤에 있다.
- 음수 : 기준값이 사전순으로 앞에있다.
반응형
'자료구조&알고리즘 > 해시를 사용한 집합과 맵' 카테고리의 다른 글
[백준] 해시를 사용한 집합과 맵 - 2910번 빈도 정렬 (Java) (0) | 2022.06.29 |
---|---|
[백준] 해시를 사용한 집합과 맵 - 13414번 수강신청 (Java) (0) | 2022.06.28 |
[백준] 해시를 사용한 집합과 맵 - 7785번 회사에 있는 사람 (Java) (0) | 2022.06.17 |
댓글