Map 이란?
Map 인터페이스는 Collection(List, Set) 인터페이스와는 다른 저장 방식을 가집니다.
Map 인터페이스를 구현한 Map 컬렉션 클래스들은 키와 값을 하나의 쌍으로 저장하는 방식(key-value 방식)을 사용합니다.
여기서 키(key)란 실질적인 값(value)을 찾기 위한 이름의 역할을 합니다.
Key 값은 중복이 되지 않지만 value 값은 중복이 가능합니다.
Map 의 종류
- LinkedHashMap : 입력 순서 보장하는 Map
- TreeMap : 정렬 기능 내장 Map
Java ApI documet에 가면 엄청나게 많은? 하위 class들이 있으니 확인해주세요
https://docs.oracle.com/javase/7/docs/api/
Map 함수 자주 사용하는 메소드
메소드 또한 API document에 가면 많지만 몇개 작성해보겠습니다.
put(K key, V value)
LinkedHashMap<String, Food> map=new LinkedHashMap<>();
map.put("B", new Food("우동",1000));
map.put("A", new Food("라면",2000));
이렇게 Map 데이터 구조에 작성하면 됩니다. Key 값과 Value값을 매개변수로 넣어서 작성하세요.
get(Object key)
// key로 검색
System.out.println(map.get("A"));
// key에 해당하는 요소가 없으면 null
System.out.println(map.get("D"));
get의 매개변수에 key값을 넣어서 key에 대응하는 저장된 value값을 return해줍니다.
containsKey(Object key)
// key가 존재하는 지 확인 : 존재하면 true 아니면 false 로 반환
System.out.println(map.containsKey("A"));
containsKey 매개변수 값에 key값을 넣어서 참 거짓을 판단하는 함수. 당연히 value에 대한 함수도 있으니 확인 부탁드립니다.
remove(Object key)
// key로 요소를 삭제
System.out.println(map.remove("A"));// 삭제하고 삭제한 요소 반환
remove 매개변수 값에 key값을 넣어서 key값에 대응하는 자료들을 삭제 및 반환합니다.
그리고 Iterator를 이용해서 value값이나 key 값을 하나하나 뽑아내는 예제를 보여드릴게요. Iterator 는 음..... collection 인터페이스로 변형해서 반복을 해주는 그런 용도인데 다음에 기회가 되면 설명해보겠습니다.
Iterator 이용 예제
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap;
public class TestMap2 {
public static void main(String[] args) {
// TreeMap : key 기준의 정렬 기능 내장
TreeMap<String, Food> map = new TreeMap<>();
map.put("d", new Food("새우깡", 1000));
map.put("a", new Food("감자깡", 2000));
map.put("c", new Food("양파깡", 1500));
System.out.println(map);
// map의 key들 열거
Set<String> set = map.keySet();
Iterator<String> it = set.iterator();
while (it.hasNext())
System.out.println(it.next());
System.out.println("***************");
// map의 value들 열거
Collection<Food> col = map.values();
Iterator<Food> it2 = col.iterator();
while (it2.hasNext())
System.out.println(it2.next());
}
}
이런식으로 하나하나 열거할 수 있습니다.
소감
자바스크립트에서도 Map, Set, List에 대한 것이 있었는데 잘 사용하지 않았습니다. 그냥 객체 생성을 할 수 있고 배열도 그냥 생성할 수 있기 때문입니다. 하지만 Java 에서는 준비된 Method와 class, interface를 이용하여 프로그래밍을 하지 않으면(자신이 이런것을 만들지 않는다면) 코드를 작성할 수 없는 상황이 생깁니다. 따라서 이러한 것에 대한 이해를 단단히 해야하고 예시들을 잘 활용하면서 성장해 나가야할 것 같습니다.
'코딩 개발 > Java' 카테고리의 다른 글
Java - File Class에 대한 간단한 예제 (0) | 2023.04.18 |
---|---|
Java - Exception handling (feat. try, catch, throw, throws) (2) | 2023.04.14 |
Java - Set, ArrayList (0) | 2023.04.11 |
Java - Interface (feat. abstract) (0) | 2023.04.11 |
Java - abstract (추상클래스, 추상 메소드) (0) | 2023.04.09 |