본문 바로가기

AWS CLOUD FRAMEWORK/Java

[Day15] Ex05

package collection;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

public class Ex05 {
	public static void main(String[] args) {
		// Map : List의 index대신 key를 사용하는 구조
		
		// list는 index에 따라 서로 다른 값을 저장한다
		// map은 key에 따라 서로 다른 값(value)을 저장한다
		// key와 value가 1:1 mapping 되는 구조를 가지기 때문에 Map이라고 한다
		
		// java.util.Map은 인터페이스이므로 생성자를 이용한 객체 생성이 불가능하다
		// java.util.Map을 implement한 클래스 HashMap을 사용한다
		
		HashMap<String, String> map = new HashMap<String, String>();
		
		map.put("0", "10");		// list.add(10);	
		map.put("1", "20");		// list.add(20);
		map.put("2", "ITBANK");	// list.add("ITBANK");
		map.put("3", "20");		// list.add(20);
		
		// list는 index의 값이 미리 정해져있으나
		// map의 key는 내가 원하는 이름으로 지정할 수 있다
		// key를 알면 value에 접근할 수 있으나, value를 안다고 해서 key를 추적하지 못한다
		
		System.out.println(map);
		System.out.println(map.get("0"));		// key: 0, value: 10
		System.out.println(map.get("1"));		// key: 1, value: 20
		System.out.println(map.get("20"));		// key: 20, value: null
		System.out.println(map.get("ITBANK"));	// key: ITBANK, value: null
		
		// 서로 다른 변수, 데이터의 값들을 한번에 묶어서 처리할 때 주로 사용한다
		String a = "Hello";
		String b = "world";
		String c = "Java";
		String d = "http";
		
		HashMap<String, String> map2 = new HashMap<String, String>();
		map2.put("a", a);
		map2.put("b", b);
		map2.put("c", c);
		map2.put("d", d);
		
		System.out.println(map2);
		
		// map의 key 는 중복을 허용하지 않는다 (Set은 중복을 허용하지 않는다)
		// map의 key 들을 Set으로 받을 수 있다
		Set<String> keySet = map2.keySet();
		
		for(String key : keySet) {
			// key를 알면 value에 접근할 수 있다
			String value = map2.get(key);
			System.out.printf("%s : %s\n", key, value);
		}
		System.out.println();
		
		// Iterator : 여러 값을 순서대로 한번씩 조회하기 위해 사용하는 클래스
		Iterator<String> keys = keySet.iterator();
		
		while(keys.hasNext()) {	// 아직 처리하지 않은 key가 하나라도 남아있다면
			String key = keys.next(); 		// 그 다음 key을 하나 가져와서
			String value = map2.get(key);	// key를 이용하여 value를 구한다
			System.out.println(key + " : " + value);
			// key와 value를 출력한다
		}
		
		
	}
}

'AWS CLOUD FRAMEWORK > Java' 카테고리의 다른 글

[Day15] phonebook  (0) 2023.04.06
[Day15] Ex06  (0) 2023.04.06
[Day15] Ex04  (0) 2023.04.06
[Day15] Ex03_Set  (0) 2023.04.06
[Day15] Quiz  (0) 2023.04.06