Map, Properties, Stack, Queue, Deque
- Map
- Map 계열 주요 메소드
- HashMap
- Properties
- TreeSet & TreeMap
- Stack
- Queue
- Deque
Map
키(Key)와 값(value)으로 구성되어 있으며, 키와 값은 모두 객체
키는 중복 저장을 허용하지 않고(Set방식), 값은 중복 저장 가능(List방식)
키가 중복 되는 경우, 기존에 있는 키에 해당하는 값을 덮어 씌움
구현 클래스로 HashMap, HashTable, LinkedHashMap, Properties, TreeMap이 있음

기능 | 메소드 | 리턴타입 | 설명 |
객체 추가 | put(K key, V value) | V | 주어진 키와 값을 추가, 저장이 되면 값을 리턴 |
객체 검색 | containsKey(Object key) | boolean | 주어진 키가 있는지 확인하여 결과 리턴 |
containsKey(Object value) | boolean | 주어진 값이 있는지 확인하여 결과 리턴 | |
entrySet() | Set<Map.Entry<K,V>> | 키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 set에 담아서 리턴 | |
get(Object key) | V | 주어진 키의 값을 리턴 | |
isEmpty() | boolean | 컬렉션이 비어있는지 여부 | |
keySet() | Set<k> | 모든 키를 Set 객체에 담아서 리턴 | |
size() | int | 저장된 키의 총 수를 리턴 | |
values() | Collection<V> | 저장된 모든 값을 Collection에 담아서 리턴 | |
객체 삭제 | clear() | void | 모든 Map.Entry를 삭제함 |
remove(Object key) | V | 주어진 키와 일치하는 Map.Entry 삭제, 삭제가 되면 값을 리턴 |
- HashMap
키 객체는 hashCode()와 equals()를 재정의해 동등 객체가 될 조건을 정해야 함
-> 키 타입은 hashCode()와 equals()메소드가 재정의 되어 있는 String타입을 주로 사용
ex) Map<K,V> map = new HashMap<K,V>();
Properties
키와 값을 String 타입으로 제한한 Map 컬렉션
주로 Properties는 프로퍼티(*.properties)파일을 읽어 들일 때 주로 사용
- 프로퍼티(~.properties)파일
- 옵션정보, 데이터베이스 연결정보, 국제화(다국어)정보를 기록하여 텍스트 파일로 활용
- 애플리케이션에서 주로 변경이 잦은 문자열을 저장하여 관리하기 때문에 유지보수를 편리하게 만들어 준다
- 키와 값이 '='기호로 연결되어 있는 텍스트 파일
TreeSet & TreeMap
검색 기능을 강화시킨 컬렉션으로, 계층 구조를 활용해 이진 트리 자료구조를 구현하여 제공

- TreeSet
이진 트리를 기반으로 한 Set컬렉션으로, 왼쪽과 오른쪽 자식 노드를 참조하기 위한 두개의 변수로 구성

- TreeMap
이진 트리를 기반으로 한 Map 컬렉션으로, 키와 값이 저장된 Map.Entry를 저장하고
왼쪽과 오른쪽 자식 노드를 참조하기 위한 두개의 변수로 구성

Stack(스택)
LIFO(Last In First Out) 구조
ex) Stack<E> stack = new Stack<E>();

리턴 타입 | 메소드 | 설명 |
E | push(E item) | 주어진 객체를 스택에 넣는다 |
E | peek() | 스택 맨위에 객체를 가져오되 객체를 스택에서 제거하지 않음 |
E | pop() | 스택 맨위에 객체를 가져오고 객체를 스택에서 제거 |
Queue
FIFO(First In First Out) 구조
ex) Queue() queue = new LinkedList();

리턴 타입 | 메소드 | 설명 |
boolean | offer(E e) | 주어진 객체를 넣는다 |
E | peek() | 큐 맨위에 객체를 가져오되 객체를 큐에서 제거하지 않음 |
E | poll() | 큐 맨위에 객체를 가져오고 객체를 큐에서 제거 |
Deque
큐와 스택의 성질을 모두 가지고 잇는 구조, 검색과 같은 반복적인 문제에 특히 유용한 데이터 구조

리턴 타입 | 메소드 | 설명 |
boolean, void |
push, offer, add(E e) | 해당 메소드 뿐만 아니라 메소드 뒤 First, Last를 붙여 앞 뒤에 주어진 객체를 넣는다 |
E | peek(), get() | 해당 메소드 뿐만 아니라 메소드 뒤 First, Last를 붙여 객체를 가져온다. 객체를 큐에서 제거하지 않음 |
E | poll(), remove() | 해당 메소드 뿐만 아니라 메소드 뒤 First, Last를 붙여 객체를 가져온다. 객체를 큐에서 제거 |
'Java > Java 개념' 카테고리의 다른 글
23. 네트워크(Network) (0) | 2022.10.24 |
---|---|
22. Thread(스레드) (0) | 2022.10.11 |
21 - 1. 컬렉션(Collection) (0) | 2022.10.11 |
20. File (0) | 2022.10.11 |
19. 입출력(IO) (0) | 2022.10.06 |