Map은 key와 value를 쌍으로 저장하는 자료구조로 키는 중복될 수 없고, 값은 중복될 수 있다. put, get 메소드를 사용하여 값의 추가와 가져오기가 가능하다.
Generic을 사용하여 값의 타입을 정의할 수 있다.
- Generic이라는 문법이 사용됨으로써 인스턴스를 만들때 사용하는 타입을 지정
Map<String, String> map = HashMap<String, String>();
package javaStudy;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapExam {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>(); // Key, Value가 모두 String 타입인 HashMap인스턴스를 만든다.
map.put("001", "kim"); // key와 value값을 put으로 저장
map.put("002", "lee");
map.put("003", "choi");
// 같은 key가 2개 있을 수 없다. 첫번째로 저장했던 001, kim은 001, kang으로 바뀐다.
map.put("001", "kang");
System.out.println(map.size()); // map에 저장된 자료의 수를 출력 > 3
// 키가 001, 002, 003인 값을 꺼내 출력합니다.
System.out.println(map.get("001"));
System.out.println(map.get("002"));
System.out.println(map.get("003"));
Set<String> keys = map.keySet();// map에 저장된 모든 key들을 Set자료구조로 꺼냅니다.
Iterator<String> iter = keys.iterator();
// Set자료구조에 있는 모든 key를 꺼내기 위하여 Iterator를 구한다.
while (iter.hasNext()) {
String key = iter.next(); // key를 꺼냅니다.
String value = map.get(key); // key에 해당하는 value를 꺼냅니다.
System.out.println(key + " : " + value); // key와 value를 출력합니다.
}
}
}
Map<String, String> map = new HashMap<>(); 제네릭타입 <string, string>으로 map을 생성하고
map.put("001", "kim"); put매서드로 값을 집어넣고
System.out.println(map.get("001")); get메서드로 키를 사용하여 값을 가져온다
해시맵 전체를 읽어들이는 iterator처리는 방식이 여러가지이므로 필요에 따라 사용한다.
해시맵은 키를 사용해 가져오는 것이 일반적이며 전체 리스팅은 예외적 경우이다. 그러나 경우에 따라서 list컬렉션을 대체해서 리스트형으로도 사용했다. 키를 설정하는 방법에 따라 아주 강력하게 사용할 수 있는 자료형이다. 개인적으로는 list컬렉션이나 배열보다 키만 알면 자유롭게 핸들링할 수 있는 hashmap으로 어려운 과제들을 많이 해결하였다.
개인적으로는 리스트와 해시맵을 정확히만 구사해도 데이터를 다루는 개발자로서 사는데 문제가 없다고 생각한다.
경험상 5,000만건의 해시맵을 사용해도 크게 이슈는 없었다. 검색속도에 이슈가 되서 해시맵 수백개를 종류별로 만들어 싱글톤으로 메모리에 올린 뒤 어플리케이션에서 공통적으로 사용하기도 했다.
'JAVA' 카테고리의 다른 글
자바 예외처리 try ~ catch ~ finally (0) | 2023.01.24 |
---|---|
자바 list (0) | 2023.01.24 |
자바 파일입출력 (0) | 2023.01.24 |
자바 쓰레드 (0) | 2023.01.24 |
URLConnection객체 : 웹페이지 가져오기 (0) | 2023.01.24 |
댓글