[Ava]HashMapの使用方法


package com.use.java;
import java.util.*;   //util디렉토리 안에 있는 모든 클래스를 임포트

public class test {
	//HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션
	//Map은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조
	//값은 중복될 수 있지만 키는 중복될 수 X
	//기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치
	//HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보임 
	
	public static void main(String[] args) {
		//선언 
		HashMap<String,String> map1 = new HashMap<String,String>();//HashMap생성
		HashMap<String,String> map2 = new HashMap<>();//new에서 타입 파라미터 생략가능
		HashMap<String,String> map3 = new HashMap<>(map1);//map1의 모든 값을 가진 HashMap생성
		HashMap<String,String> map4 = new HashMap<>(10);//초기 용량(capacity)지정
		HashMap<String,String> map5 = new HashMap<>(10, 0.7f);//초기 capacity,load factor지정
		HashMap<String,String> map6 = new HashMap<String,String>(){{//초기값 지정 
			put("a","b");
		}};
		
		//값 추가 => put(key,value) 메소드 사용 
		HashMap<String, Integer> map = new HashMap<>();
		map.put("사과", 1);
		map.put("바나나",2);
		map.put("메론", 3);
		
		//값 가져오기 get(key) 메소드 사용 
		System.out.println(map.get("사과")); //1
        
        //키 없을 때 디폴드 값 지정하여 가져오기
        System.out.println(map.getOrDefault("바나나", 0)); //0
		
		//출력 => remove(key) 메소드 사용 => 오직 키 값으로만 Map의 요소 삭제할 수 있음   
		System.out.println(map); //전체 출력 {사과=1, 메론=3, 바나나=2}
		System.out.println(map.get("바나나"));//key값 바나나의 value얻기 : 2
		
		//entrySet() 
		for (HashMap.Entry<String, Integer> entry : map.entrySet()) {
		    System.out.println("[Key]:" + entry.getKey() + " [Value]:" + entry.getValue());
		}
		//[Key]:사과 [Value]:1
		//[Key]:메론 [Value]:3
		//[Key]:바나나 [Value]:2
		
		//KeySet() 
		for(String s : map.keySet()){ //저장된 key값 확인
		    System.out.println("[Key]:" + s + " [Value]:" + map.get(s));
		}
		//[Key]:사과 [Value]:1
		//[Key]:메론 [Value]:3
		//[Key]:바나나 [Value]:2
		
		//값 삭제
		map.remove("바나나");   //"바나나 " 값 제거   
		System.out.println(map); //{사과=1, 메론=3}
		map.clear(); //모든 값 제거 
		System.out.print(map);   //{}
		
	}
}