반응형

Key, Value로 구성된 Map은 List와 함께 대체적으로 많이쓰이는 자료구조에 속합니다.
인덱스가 없어 데이터는 순차적으로 저장, 접근하지는 못하고 각각의 값에 Key가 매핑되어 있어 이를 기준으로 데이터에 접근할 수 있습니다.

특징

1. Key, Value로 구성됨
2. 인덱스가 존재하지 않음
3. 자료 저장시 순서가 없음
4. 값을 중복은 허용하나 Key는 중복 불가

선언법

HashMap<String, String> map = new HashMap<String, String>();

String 부분은 제네릭은 데이터 타입 변경이 가능합니다.

기능

명령어 기능
Put 데이터 삽입
Get 데이터 읽기
Remove 데이터 삭제
Size Map에 저장된 데이터 갯수를 리턴
containsKey 해당 키가 존재하는지 리턴(True,False)
containsValue 해당 값이 존재하는지 리턴(True,False)

기능 실습

public class PreTest {
	public static void main(String[] args) {
	
		HashMap<String, String> map = new HashMap<String, String>();
		
		//입력
		map.put("1", "One");
		map.put("2", "Two");
		map.put("3", "Three");
		
		System.out.println("1. 저장된 map");
		System.out.println(map);
		

		System.out.println("\n2. get");
		System.out.println(map.get("1"));
		System.out.println(map.get("2"));
		System.out.println(map.get("3"));
		
		//삭제
		map.remove("3");
		
		System.out.println("\n3. 삭제 처리된 데이터");
		System.out.println(map);
		
		System.out.println("\n4. size");
		System.out.println(map.size());
		
		System.out.println("\n5. containsKey");
		System.out.println(map.containsKey("1"));
	
		System.out.println("\n6. containsValue");
		System.out.println(map.containsValue("One"));
		
	}
}

데이터 추출

public class PreTest {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String, String>();
		
		map.put("1", "One");
		map.put("2", "Two");
		map.put("3", "Three");
		
		Iterator<String> it = map.keySet().iterator();
		while(it.hasNext()){
			String key = (String) it.next();
			System.out.println(key+" : "+map.get(key));
		}
	}
}

인덱스가 없기 때문에 map에 저장된 데이터를 순차적으로 꺼낼 수 없을 것 같지만,
Iterator를 활용하여 모든 데이터를 추출할 수 있습니다.

반응형

+ Recent posts