자바 - Map, HashMap

빵제이·2023년 7월 28일
0

자바

목록 보기
31/37

[ HashMap ]

    1. Map 인터페이스를 구현한 클래스
    1. 객체(Object)/인스턴스(Instance)를 대신할 수 있는 자료구조이다.
    1. 용어
    • 1) Entry : Key + Value를 합쳐서 부르는 말
    • 2) Key : 데이터를 식별하는 식별자( 변수명, ex: name )
    • 3) Value : 데이터 자체( 변수에 저장된 값, ex: 홍길동 )
    1. 특징
    • 1) Key는 중복이 불가능하다. (HashSet 구조로 되어 있다.)
    • 2) Value는 중복이 가능하다.
    • 3) Key와 Value 모두 Generic 처리한다.
      (Key의 타입과 Value의 타입을 따로따로 잡아주어야 한다는 말)
  • Key 만 저장하는 건 Set 이다.

[ ex01 ]

public static void ex01() {
   
	// Map 인터페이스 타입으로 HashMap 선언
   //Map<K(Key), V(value)>
   Map<String, String> dict;
   
	// HashMap 생성
   dict = new HashMap<String, String>();
   
	// Entry 저장(Key, Value) : key와 value 를 합쳐서 entry라고 부른다. 
   실제 데이	터는 밸류임.
   dict.put("봄", "spring");    // 봄이라는 키를 전달하면, spring이라는 밸류가 나옴.
   dict.put("여름", "summer");
   dict.put("가을", "autumn");
   dict.put("겨울", "winter");
   
	// Value 확인(Key를 전달한다.)
   System.out.println(dict.get("봄"));
   System.out.println(dict.get("여름"));
   System.out.println(dict.get("가을"));
   System.out.println(dict.get("겨울"));
 }

[ ex02 ]

public static void ex02() {
  
	// HashMap 선언 & 생성
  // Object는 전부 저장할 수 있는 만능 타입.
  Map<String, Object> person = new HashMap<String, Object>();
  
	// Entry 저장(Key는 변수명으로, Value는 변수값으로 저장)
  person.put("name", "홍길동");
  person.put("age", 30);
  
	// Entry 수정(기존의 key를 사용하면 해당 키의 Value가 수정되는 방식.
  person.put("name", "제시카");
  person.put("age", 40);   
  
	// Value 확인
  System.out.println(person.get("name")); // 홍길동
  System.out.println(person.get("age"));  // 30
}

[ ex03 ]

public static void ex03() {
  
	// HashMap 선언 & 생성
  Map<String, Object> map = new HashMap();
  
	// Entry 저장
  map.put("top", 10);
  map.put("bottom", 20);
  map.put("left", 30);
  map.put("right", 40);
  
	// 반복자(Iterator)를 이용한 순회
  // 1. Key만 모두 꺼내서 Set에 저장한다. (keySet 메소드)
  // 2. Set에 반복자(Iterator)를 붙여서 Key를 하나씩 꺼낸다.
  // 3. get() 메소드에 key를 전달하면 Value가 나온다.
  Set<String> keySet = map.keySet();       
  Iterator<String> arm = keySet.iterator();
  while(arm.hasNext()) {                  
    String key = arm.next();
    Object value = map.get(key);
    System.out.println(key + ": " + value);
  }
}

[ 메인 메소드 ]

public static void main(String[] args) {
  //ex01();
  //ex02();
  ex03();
}
profile
개인 아카이브

0개의 댓글