728x90
✨ 이 글은 [ 코드프레소 Java 웹 개발 체험단 활동 ] 내용입니다 ✨
💜 코드프레소 이러닝 강의 수강 중 - Java 프로그래밍 초급 💜
😎 아래의 링크를 통해 프리미엄 IT 교육 서비스, 코드프레소를 확인해보세요 😎
Map 자료 구조 데이터
- 하나의 데이터를 설명하기 위한 정보를 저장할 때 좋다
- 속성 간에는 순서가 필요 없다
- 동일한 속성으로 여러 개의 값이 존재하지 않는다
Map 자료구조를 위해 정의된 인터페이스
- Pair(Key-Value) 데이터 여러 건을 하나의 객체로 관리한다
- 입력된 데이터에 순서가 존재하지 않는다
- Key는 Value를 찾기 위한 고유한 주소의 역할을 수행한다 (인덱스와 유사함)
- Key는 List<E> 인터페이스의 인덱스와 다르게 순서 개념이 없음 (인덱스와 다른 부분)
- Pair(Key-Value) 형태로 데이터가 저장되는 구조여서 Collection<E> 인터페이스를 상속받지 않고 독립적으로 정의된다
- Key는 중복을 허용하지 않고, Value는 중복이 허용된다
- Collection<E> 인터페이스를 상속받지 않고 독립적으로 정의된 인터페이스
- 전체 객체를 다루는 메소드는 List<E> 인터페이스와 유사하다
- 개별 데이터를 다루는 메소드 List<E> 인터페이스와 다르다
대표적인 Map 자료구조의 컬렉션 클래스
- HashMap<K, V> 가 가장 많이 사용되는 클래스이다
HashMap<K, V> 클래스에 대한 이해
- 다른 언어의 Dictionary와 유사한 컬렉션 클래스
- Key 값이 Hash 알고리즘을 이용해 구조화되어 있어 Key 값을 이용한 검색 속도가 빠르다
- java.util 패키지에 존재한다
HashMap<K, V> 객체 생성
- import java.util.HashMap : HashMap 클래스를 사용하기 위해 컴파일러에 해당 Class가 존재하는 패키지의 정보를 제공한다
- HashMap : 생성하고자 하는 객체가 HashMap 클래스임을 지정한다
- <Ke-Type-Class, Value-Type-Class> : 제네릭을 이용해 객체에서 사용할 Key와 Value의 데이터 타입을 지정한다. 이 때 데이터 타입의 Class 이름을 사용한다
- hashMap-name : 생성하고자 하는 HashMap 객체의 변수명을 지정한다
HashMap<K, V> 객체의 데이터 추가
- V put(K key, V value) : 데이터를 삽입하고, 만약 기존 키값으로 동일한 값이 존재하면 해당 키의 Value 값을 업데이트한다
- void putAll(Map<? extends K, ? extends V> m)
V put(K key, V value)
- 객체 생성 시 지정한 데이터 타입(<K, V>)의 Key-Value Pair를 추가한다
- Key, Value 값 모두 null 값 허용된다
- Key, Value 모두 특정 Class 에 대한 객체를 사용할 수 있지만, Key에 mutable한 객체 사용은 지양한다
- 객체에 등록되어 있는 Key가 인자로 전달되면, 기존에 저장된 Value를 업데이트한다
- 업데이트 전 저장되어 있는 Value가 반환된다
- 순서 없이 Pair(Key, Value) 데이터가 추가된다
void putAll(Map<? extends K,? extends V> m)
- 인자로 전달받은 Map 객체의 모든 Pair 데이터를 추가한다
- HashMap 객체 생성 시 정의한 데이터 타입(<K, V>) 을 원소로 갖는 Map 객체여야 한다
- 인자로 전달받은 Map 객체에 기존 Key와 중복되는 Pair 존재 시 해당 값으로 업데이트된다
HashMap<K, V> 객체의 데이터 탐색
- V get(Object key)
- default V getOrDefault(Object key, V defaultValue)
- boolean containsKey(Object key)
- boolean containsValue(Object value)
- Collection<V> values()
- Set<K> keySet()
- int size()
V get(Object key)
- 전달받은 Key에 매핑된 Value를 반환한다
default V getOrDefault(Object key, V defaultValue)
- 전달받은 Key에 매핑된 Value를 반환한다
- 존재하지 않는 Key의 경우 인자로 전달받은 defaultValue를 반환한다
- defualtValue의 데이터 타입은 객체 생성시 정의한 <K, V>여야 한다
boolean containKey(Object key)
- 전달받은 Key가 객체에 존재하는 지 확인한 후 수행 결과를 boolean 형태로 반환한다
boolean containsValue(Object value)
- 전달 받은 Value가 객체에 존재하는 지 확인한 후 수행 결과를 boolean 형태로 반환한다
Collection<V> values()
- 객체에 존재하는 모든 Value를 Collection 객체 형태로 반환한다
Set<K> keySet()
- 객체에 존재하는 모든 Key를 Set 객체 형태로 반환한다
int size()
- 객체에 존재하는 모든 Pair 데이터의 개수를 조회한다
HashMap<K, V> 객체의 데이터 변경
- void clear()
- V remove(Object key)
- boolean remove(Object key, Object Value)
void clear()
- 객체 내 모든 데이터를 제거한다
V remove(Object key)
- 전달받은 Key의 데이터 Pair를 제거하고 해당 Pair의 Value를 반환한다
boolean remove(Object key, Object value)
- 전달받은 Key와 Value가 모두 일치하는 데이터 Pair를 제거하고 수행 결과를 boolean 타입으로 반환한다
728x90
'코드프레소 체험단 > Java 프로그래밍' 카테고리의 다른 글
[Java 프로그래밍 초급] List 자료구조 컬렉션 클래스 (0) | 2022.06.09 |
---|---|
[Java 프로그래밍 초급] 컬렉션 프레임워크 (0) | 2022.06.08 |
[Java 프로그래밍 초급] 객체지향 고급 (3) (0) | 2022.01.25 |
[Java 프로그래밍 초급] 객체지향 고급 (2) (0) | 2022.01.21 |
[Java 프로그래밍 초급] 컬렉션 프레임워크의 개념 (0) | 2022.01.20 |
댓글