HashMap은 Map인터페이스를 구현한 대표적인 Map컬렉션입니다. Map인터페이스를 상속하고 있어서 Map인터페이스의 성질을 그대로 가지고 있다.
Map은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조이다.
값은 중복될수있지만, 키는 중복될수 없다.
HashMap은 데이터를 검색하는데 있어서 뛰어난 성능을 가짐.
HashMap은 저장공간보다 데이터가 추가로 들어오면 저장공간을 약 두배로 늘려서 과부하발생.
그렇기에 초기에 저장할 데이터 개수를 알고 있다면 Map의 초기 용량을 지정해주는 것이 좋습니다. 해당 내용은 아래 링크에서 상세히 기술되어 있습니다.
HashMap값 추가.
HashMap<Integer,String> map = new HashMap<>();
map.put(1,"사과");
map.put(2,"바나나");
map.put(3,"포도");
입력되는 키 값이 HashMap 내부에 존재한다면 기존의 값은 새로 입력되는 값으로 대치
HashMap값 삭제.
HashMap<Integer,String> map = new HashMap<Integer,String>(){{
map.put(1,"사과");
map.put(2,"바나나");
map.put(3,"포도");
}};
map.remove(1); // key값 1 제거
map.clear(); // 모든 값 제거.
HashMap값 출력
HashMap<Integer,String> map = new HashMap<Integer,String>(){{
map.put(1,"사과");
map.put(2,"바나나");
map.put(3,"포도");
}};
System.out.println(map);
System.out.println(map.get(1));
for(Entry<Integer,String> entry : map.entrySet()){
System.out.println("[key]:"+ entry.getKey()+ " [value]: " + entry.Value());
System.out.println(map); // 전체 출력
System.out.println(map.get(1)); // key 값 1의 value값 얻기 : 사과
for(Entry<Integer,String> entry : map.entrySet()){
System.out.println("[key]:"+entry.getKey() + "[value]:"+entry.getValue());
}
for(Integer i : map.KeySet()){
System.out.println("[key]:" + i + " [value]: " + map.get(i));
}
HashMap을 출력하는 방법 : 그냥 print하게되면 {}로 묶어서 map의 전체가 출력됨.
특정 Key값의 value를 가져오고싶다면 get(key)를 사용. 전체를 출력 : entrySet()이나 ,
KeySet()메소드를 활용하여 Map의 객체를 반환받은 후 출력.