Java/java

4주차 - hashmaps

우젼 2022. 9. 2. 20:02

hashMap 의 생성 예시

		HashMap<Integer, String> hm = new HashMap<>();
		// Integer 자료형의 키값, String 자료형의 값 의 형태를 가진 HashMap
		hm.put(0, "test");
		hm.put(1, "hello");
		System.out.println(hm.get(0));
		System.out.println(hm.get(1));
        
        HashMap hm2 = new HashMap<>();
		// 키, 값의 자료형을 지정하지 않은 HashMap
		
		hm2.put(0, 10000);
		hm2.put(1, "hello");
		hm2.put("naver", "http://www.naver.com");
		
		System.out.println(hm2.get(0));
		System.out.println(hm2.get(1));
		System.out.println(hm2.get("naver"));
		System.out.println(hm2);

.get() : 키값을 입력하여 해당하는 값을 반환

		HashMap<String, Integer> map = new HashMap<>();
		
		map.put("선풍기", 10);
		map.put("에어컨", 100);
		map.put("건조기", 100);
		
		System.out.println("선풍기 : " +map.get("선풍기") + "만원");
		System.out.println("선풍기 : " +map.get("에어컨") + "만원");
		System.out.println("선풍기 : " +map.get("건조기") + "만원");
		System.out.println("선풍기 : " +map.get("없는키") + "만원");

.containsKey() : 괄호안의 키가 존재하는지 여부 확인

.containsValue() : 괄호안의 값이 존재하는지 여부 확인

		HashMap<String, Integer> map = new HashMap<>();
		Scanner sc = new Scanner(System.in);

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

		System.out.print("키 입력 : ");
		String key = sc.nextLine();
		
		System.out.print("값 입력 : ");
		int value = sc.nextInt();
		
		System.out.println(map);
		System.out.println(key + "키 검색 결과 :" + map.containsKey(key));
		System.out.println(value + "값 검색 결과 :" + map.containsValue(value));

.keySet() : 키를 모두 반환

.values() : 값을 모두 반환

이를 이용하여 hashMap 의 키와 값을 각각 ArrayList에 저장하는 예시

		HashMap<String, Integer> map = new HashMap<>();
		Scanner sc = new Scanner(System.in);

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

		System.out.println(map.keySet());
		System.out.println(map.values());
		
		ArrayList<String> keys = new ArrayList<>(map.keySet());
		ArrayList<Integer> values = new ArrayList<>(map.values());

.iterator() : 컬렉션안의 값들을 모두 반환한다.

		Scanner input = new Scanner(System.in);
		HashMap<String, String> map = new HashMap<>();
		
		map.put("선풍기", "10");
		map.put("에어컨", "100");
		map.put("건조기", "100");
		map.put("선풍기", "1000");
		
		Iterator<String> itk =map.keySet().iterator();
		while(itk.hasNext()) {
			String key = itk.next();
			System.out.println(key + " : " + map.get(key));
		}
		
		Iterator<String> itv = map.values().iterator();
		while(itv.hasNext()) {
			String value = itv.next();
			System.out.println("value : "+value);
		}

.put(,) : 키에 값을 저장한다. 기존에 있던 키라면 값을 업데이트한다.

		HashMap<String, String> map = new HashMap<>();
		
		map.put("선풍기", "10");
		map.put("에어컨", "100");
		map.put("건조기", "100");
		map.put("선풍기", "1000"); // 이미 만들어진 키를 지정하여 데이터를 입력하면 수정됨.
		// 선풍기 = 10 --> 선풍기 = 1000