-
[자료구조 Java] 비선형 자료구조 ④ 맵 (Map), 집합 (Set), 해시테이블Computer Science/Data Structure 2022. 10. 5. 19:02반응형
비선형 자료구조란?
: 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조를 말하며 일반적으로 트리나 그래프를 의미
5. 맵 (Map)
: 특정 순서에 따라 키(Key)와 매핑된 값(Value)의 조합으로 형성된 자료 구조
- 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고, Key 를 통해 Value를 얻을 수 있음- Key는 중복될 수 없으며, Value는 중복 값을 허용함
- 자바에서 Map은 인터페이스로, 인터페이스를 구현 Map자료형에는 HashMap, LinkedHashMap, TreeMap 등이 있음
5-1. HashMap 주요 메소드
import java.util.HashMap; public class Test { public static void main(String[] args) { HashMap<String, String> map = new HashMap<>(); // 1. 자료 넣기 (put(key, value)) map.put("Erin", "안녕하세요. 에린입니다."); // 2. 값 가져오기 (get(key)) System.out.println(map.get("Erin")); // 해당 Key에 해당하는 value가 없을 경우 null 리턴 // map.getOrDefault("ErinH", "잘못된 값입니다."); 를 통해 디폴트 값 설정 가능. // 3. 키의 유무 확인하기 (containsKey(key)) System.out.println(map.containsKey("Erin")); // true // 4. 값 삭제하기 (remove(key)), 삭제하면 해당 값이 리턴됨 System.out.println(map.remove("Erin")); // "안녕하세요. 에린입니다." // 5. 맵에 저장된 데이터의 개수 확인하기(size()) System.out.println(map.size()); // 0 } }
6. 집합 (Set)
: 집합과 관련된 것을 쉽게 처리하기 위해 만들어진 자료형
- 데이터의 중복을 허용하지 않으며, 순서가 없음 (인덱싱을 통해 값을 얻을 수 없음)
- 자바에서는 HashSet, TreeSet, LinkedHashSet 등이 존재6-1. HashSet 주요 메소드
import java.util.HashSet; public class Test { public static void main(String[] args) { HashSet<String> set = new HashSet<>(); // 1. 값 추가 (add(item)) set.add("Hello"); set.add("Welcome"); // 2. 특정 값 제거 (remove(item)) set.remove("Hello"); } }
7. 해시테이블(HashTable)
: Key와 Value를 1:1로 연관지어 저장하는 자료구조 (연관 배열 구조)
- 내부적으로 배열을 사용하여 데이터를 저장하기 때문에 빠른 검색속도를 가짐
- 특정한 값을 탐색하는데 고유 index(key)로 접근하기 때문에 시간복잡도는 O(1)을 가짐
반응형'Computer Science > Data Structure' 카테고리의 다른 글
[자료구조 Java] 비선형 자료구조 ③ 힙, 우선순위 큐 (0) 2022.10.05 [자료구조 Java] 비선형 자료구조 ② 트리 (0) 2022.10.05 [자료구조 Java] 비선형 자료구조 ① 그래프 (1) 2022.10.05 [자료구조 Java] 선형 자료 구조(연결 리스트, 배열, 스택, 큐) (1) 2022.10.05 [자료구조 Java] 공간복잡도, 자료구조의 시간 복잡도 (0) 2022.10.02