본문 바로가기
Collection/HashMap

HashMap

by pms93 2022. 7. 25.
package hashMaps;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;

public class hashMap1 {

	public static void main(String[] args) {

		// HashMap
		// - Key-Value 두가지가 연결된 상태로 저장된다.
		// - 데이터 저장시에 set과 같이 순서를 고려하지 않는다.
		// HashMap<Key의 자료형, Value의 자료형> 참조변수명 = new HashMap<>();
		// - Generic의 생략이 가능하다
		HashMap hm1 = new HashMap();
		HashMap<Integer, String> hm2 = new HashMap<>();

		// .put()
		// - 데이터를 저장해준다.
		// - 이미 존재하는 key값에 데이터 저장시 oldValue -> newValue로 수정된다.
		hm2.put(0, "hello");
		hm2.put(1, "world");

		// .get()
		// - 파라미터 값은 key를 사용한다(value 사용x)
		System.out.println(hm2.get(0));
		System.out.println(hm2.get(1));

		hm1.put("0", 1000);
		hm1.put(1, "hello");
		hm1.put("naver", "https://www.naver.com");
		System.out.println(hm1.get("0"));
		System.out.println(hm1.get(1));
		System.out.println(hm1.get("naver"));

		// .containsKey(), .containsValue()
		// - key와 value가 존재하는지에 대해 true, false를 반환해준다.
		System.out.println("key값 '0'은 존재하는가?\n" + hm1.containsKey("0"));
		System.out.println("value값 hellow는 존재하는가?\n" + hm1.containsValue("hellow"));

		// .keySet(), 
		// - key값만 따로 분리하여 저장이 가능하다.
		// .values()
		// - value값만 따로 분리하여 저장이 가능하다.
		HashMap hm3 = new HashMap();
		hm3.put("선풍기", 10);
		hm3.put("에어컨", 100);
		hm3.put("건조기", 1000);
		System.out.println(hm3.keySet());
		System.out.println(hm3.values());

		// HashMap은 key와 value를 분리하여 ArrayList로 넘겨받을 수 있다.
		ArrayList<String> keys = new ArrayList<>(hm3.keySet());
		ArrayList<Integer> values = new ArrayList<>(hm3.values());

		System.out.println(keys);
		System.out.println(values);

		// HashMap 또한 Iterator 사용이 가능하다
		HashMap<String, Integer> hm = new HashMap<>();
		Scanner sc = new Scanner(System.in);

		hm.put("선풍기", 10);
		hm.put("에어컨", 100);
		hm.put("건조기", 100);
		hm.put("선풍기", 1000);

		Iterator<String> itk = hm.keySet().iterator();
		while (itk.hasNext()) {
			String key = itk.next();
			System.out.println(key + " : " + hm.get(key));
		}

		Iterator<Integer> itv = hm.values().iterator();
		while (itv.hasNext()) {
			Integer value = itv.next();
			System.out.println(value);
		}
        
        
        // .replace("a", "b", "c")
        // Key값 a에 대해 예상되는 Value b일 때 c로 대체(수행)한다.
        // c에서 .put()함수를 사용해도 잘 작동한다.
        

	}
}

'Collection > HashMap' 카테고리의 다른 글

HashMap 예제(3)  (0) 2022.07.26
HashMap 예제(2)  (0) 2022.07.26
HashMap 예제(1)  (0) 2022.07.25