Code.presso Java 웹 개발 트랙 체험단 활동 2주차 두번째 코스로, 지난 시간에 이어 마지막으로 컬렉션 프레임워크인 Map, Set에 대해 학습한 내용을 정리해보려고 한다!
강의 제목은 "Java Programming 초급" 으로, 자세한 정보는 👇🏻아래👇🏻 링크를 통해 확인할 수 있다.
✋🏻 포스팅 내 사용된 사진 파일들의 저작권은 모두 코드프레소에 있으며, 강의자료 공유 및 업로드는 불가능합니다.
Map
자료 구조 데이터로 한 사람의 정보를 저장하는 것을 예로 들 수 있다.
personal_info = {'name':'sorzzzzy', 'gender':'Female', 'height':'155', 'nationality':'Korea'}
➡️ 이와 같이 하나의 데이터를 설명하기 위한 여러 속성 정보가 필요하며,
➡️ 속성 간에는 순서가 필요하지 않다.
➡️ 또한 동일한 속성으로 여러 개의 값이 존재하지 않는다.
Map<K,V>
인터페이스에 대한 이해Map<K,V>
인터페이스는 Map
자료구조를 위해 정의된 인터페이스이다.
이와 같이 Map
은 Pair(Key-Value)
형식으로 데이터 여러 건을 하나의 객체로 관리한다.
Key
는 Value
를 찾기 위한 고유한 주소의 역할을 수행한다.Key
는 List<E>
인터페이스의 인덱스와는 다르게 순서 개념이 존재하진 않는다.Pair(Key-Value)
형태로 데이터가 저장되는 구조로, Collection<E>
인터페이스를 상속받지 않고 독립적으로 정의된다.Key
는 중복을 허용하지 않고, Value
는 중복을 허용한다.또한 Map<K,V>
인터페이스는 Collection<E>
인터페이스를 상속받지 않고 독립적으로 정의된 인터페이스이다.
Map<K,V>
인터페이스의 메소드를 살펴보자.
전체 객체를 다루는 메서드는 List<E>
인터페이스와 유사하지만,
개별 데이터를 다루는 메서드는 List<E>
인터페이스와 다른데, 이는 구조적으로 Pair(Key-Value)
형태이기 때문이다.
📌
HashMap<K,V>
대표적인Map
자료구조의 컬렉션 클래스로는HashMap<K,V>
이 있다.
Key
값이 Hash 알고리즘을 이용해 구조화 되어있어Key
값을 이용한 검색 속도가 빠르다는 특징이 있으며,java.util
패키지에 존재한다.
HashMap<K,V>
객체의 생성과 데이터 추가HashMap<K,V>
객체 생성HashMap<K,V>
객체는 제네릭을 이용해 객체에서 사용할 Key
와 Value
의 데이터 타입을 지정해주어야 한다.
HashMap
클래스는 java.util
패키지에 존재하기 때문에, 이를 가져오기 위해서는 클래스가 존재하는 전체 path 정보를 넣어주어야 한다.
➡️ import java.util.HashMap
import java.util.HashMap;
public class NewTubeSystem {
public static void main(String[] args) {
HashMap<String, String> sorzzzzy = new HashMap<>();
System.out.println(sorzzzzy);
}
}
➡️ sorzzzzy
라는 객체를 만들어보았다😉
➡️ result = {}
HashMap<K,V>
객체의 데이터 추가V put(K key, V value)
Key
, Value
가 생성된다.Key
가 이미 존재하는 경우, 기존의 값을 반환하고 새로운 값으로 업데이트된다.Key
, Value
모두 특정 클래스에 대한 객체를 사용할 수 있다.Key
, Value
모두 null
값이 허용된다.void putAll(Map<? extends K,? extends V> m)
Map
객체의 모든 Pair 데이터를 추가한다.HashMap<K,V>
객체의 데이터 탐색과 변경HashMap<K,V>
객체의 데이터 탐색V get(Object key)
System.out.println(sorzzzzy.get("name");
Key
에 매핑 된 Value
를 반환한다.default V getOrDefault(Object key, V defaultValue)
System.out.println(sorzzzzy.getOrDefault("name", "Unknown");
Key
에 매핑 된 Value
를 반환한다.Key
의 경우 인자로 전달받은 defaultValue
를 반환한다.boolean containsKey(Object key)
System.out.println(sorzzzzy.containsKey("name");
Key
가 객체에 존재하는지 확인 후 수행 결과를 boolean
형태로 반환한다.boolean containsValue(Object Value)
System.out.println(sorzzzzy.containsValue("jinsol");
Value
가 객체에 존재하는지 확인 후 수행 결과를 boolean
형태로 반환한다.Collection<V> values()
Value
를 Collection
객체 형태로 반환한다.Set<K> keySet()
Key
를 Set
객체 형태로 반환한다.int size()
HashMap<K,V>
객체의 데이터 변경void clear()
sorzzzzy.clear();
V remove(Object key)
Key
의 데이터 Pair를 제거하고, 해당 Pair 의 Value
를 반환한다.boolean remove(Object key, Object Value)
Key
와 Value
가 모두 일치하는 Pair를 제거하고, 수행 결과를 boolean
타입으로 반환한다.Set<E>
인터페이스에 대한 이해HashSet<E>
객체의 생성과 데이터 추가HashSet<E>
객체의 생성HashSet<E>
객체의 데이터 추가HashSet<E>
객체의 데이터 탐색과 변경HashSet<E>
객체의 데이터 탐색HashSet<E>
객체의 데이터 변경HashSet<E>
객체의 데이터 정렬HashSet<E>
객체의 데이터 정렬총 4번의 포스팅을 거쳐 Code.presso Java 웹 개발 트랙 체험단 활동 2주차 두번째 코스 "Java Programming 초급" 도 이렇게 끝이 났다!!
코드프레소 홈페이지(https://www.codepresso.kr/)에는 오늘 포스팅한 컬렉션 프레임워크 Map, Set 관련 강의뿐만 아니라 다양한 강의들이 개설되어 있으니 모두 한번 씩 살펴보고 수강해보면 좋을 것 같다😃