기능 | 리턴 타입 | 메서드 | 설명 |
객체 추가 | Object | put(Object key, Object value) | 주어진 키로 값을 저장, 새로운 키일 경우 null을 리턴하고 동일한 키가 있을 경우 값을 대체하고 이전값을 리턴 |
객체 검색 | boolean | containsKey(Object key) | 주어진 키가 있으면 true, 없으면 false를 리턴 |
boolean | containsValue(Object value) | 주어진 값이 있으면 true, 없으면 false를 리턴 | |
Set | entrySet() | 키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아서 리턴 | |
Object | get(Object key) | 주어진 키에 해당하는 값을 리턴 | |
boolean | isEmpty() | 컬렉션이 비어 있는지 확인 | |
Set | keySet() | 모든 키를 Set 객체에 담아서 리턴 | |
int | size() | 저장된 키-값 쌍의 총 갯수를 리턴 | |
Collection | values() | 저장된 모든 값을 Collection에 담아서 리턴 | |
객체 삭제 | void | clear() | 모든 Map.Entry(키와 값)을 삭제 |
Object | remove(Object key) | 주어진 키와 일치하는 Map.Entry를 삭제하고 값을 리턴 |
HashMap은 해시 함수를 통해 'key', 'value'가 저장되는 위치를 결정한다.
hashMap 선언 방법
Map<Key, Value> map = new HashMap<Key,Value>();
Map<Key, Value> map = new HashMap<Key, Value>(capacity, loadFactor);
// capacity : 해시테이블의 버킷 수
// loadFactor : 해시테이블의 버킷이 얼마나 가득 찼는지 보여주는 수치
예시
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
//객체 저장
map.put("고구마", 50);
map.put("감자", 40);
//저장된 총 Entry 수 얻기
System.out.println("총 entry 수: " + map.size());
//객체 찾기 -> 이름(key)으로 점수(value) get!
System.out.println("고구마 : " + map.get("고구마"));
//객체를 하나씩 처리
//Set 컬렉션으로 이름(key) 얻기
Set<String> keySet = map.keySet();
//반복해서 이름(key)를 얻고, 값을 Map에서 얻어냄
Iterator<String> keyIterator = keySet.iterator();
while(keyIterator.hasNext()) {
String key = keyIterator.next();
Integer value = map.get(key);
System.out.println(key + " : " + value);
}
//객체 삭제
map.remove("감자");
// map.size() 1 감소!
map.size()
//객체를 하나씩 처리
Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
//Set 컬렉션으로 Map.Entry 얻기
Iterator<Map.Entry<String, Integer>> entryIterator = entrySet.iterator();
//반복해서 Map.Entry를 얻고 키와 값을 get!!
while(entryIterator.hasNext()) {
Map.Entry<String, Integer> entry = entryIterator.next();
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + " : " + value);
}
//객체 전체 삭제
map.clear();
}
}
'IT 정보 > Java' 카테고리의 다른 글
[Java] 애너테이션 ( Annotation ) (7) | 2022.05.19 |
---|---|
[Java] 람다 (Lambda) (9) | 2022.05.19 |
[Java] Collection Framwork (List편) (8) | 2022.05.18 |
[Java] 내부 클래스(Inner class) (10) | 2022.05.18 |
[Java] Iterator 인터페이스 (40) | 2022.05.16 |