본문 바로가기

Language/JAVA

JAVA - HashMap ( Iterator를 이용해 데이터 가져오기 )

반응형
HashMap  ( Iterator를 이용해 데이터 가져오기 )



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

public class MapTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// map은 파이썬의 딕셔너리와 비슷한 데이터 스트럭쳐
		// 가장 중요한 HashMap
		// ArrayList는 String이면 String 하나 객체면 객체하나였지만
		// HashMap은 파이썬의 딕셔너리와 비슷하므로 key와 value를 적어줘야 한다.
		// 즉 아래의 뜻은 key = String, value = String 이라는 뜻
		HashMap<String, String> map = new HashMap<String, String>();
		
		// 데이터 추가
		map.put("model", "iPhone 12");
		map.put("year", "2021");
		map.put("color", "red");
		
		// 데이터 Accessing
		// 데이터는 key값으로 가져온다.
		System.out.println(map.get("color") );
		
		System.out.println("--------------------------------");
		
		// key만 가져올때
		// Object는 최상위 클래스를 말한다.
		Object[] keys = map.keySet().toArray();
		
		for(int i = 0 ; i < keys.length ; i++) {
			System.out.println((String)keys[i]);
		}
		
		System.out.println("--------------------------------");
		
		// value만 가져올때
		// Object는 최상위 클래스를 말한다.
		Object[] values = map.values().toArray();
		
		for(int i = 0 ; i < values.length ; i++) {
			System.out.println((String)values[i]);
		}
		
		System.out.println("--------------------------------");
		
		// HashMap에 저장된 key 삭제
		// 파이썬의 딕셔너리 데이터 삭제와 같다.
		map.remove("year");
		
		
		// Iterator를 이용해 전체 데이터를 가져오는 방법
		
		// 키를 가져오는 방법
		Iterator<String> keyIter = map.keySet().iterator();
		// hasNext는 불린타입 있으면 true 없으면 false
		while(keyIter.hasNext()) {
			String key = keyIter.next();
			String value = map.get(key);
			System.out.println("key : " + key + ", value : " + value);
		}
		
		System.out.println("--------------------------------");
		
		// 데이터 하나 access
		System.out.println( map.get("model") );
		
		System.out.println("--------------------------------");
		
		// 데이터 전체 삭제	
		map.clear();
		
		System.out.println(map.size());
		
		
	}

}

반응형

'Language > JAVA' 카테고리의 다른 글

JAVA - 예외처리(Try Catch Finally)  (0) 2022.07.07
JAVA - ArrayList  (0) 2022.07.06
JAVA - String Func  (0) 2022.07.06
JAVA - Interface  (0) 2022.07.06
JAVA - Abstract (추상클래스)  (0) 2022.07.06