자바 컬렉션 프레임워크
자바 컬렉션 프레임워크는 데이터를 저장하고 처리하는 데 필요한 클래스와 인터페이스의 모음입니다. 이 프레임워크를 이용하면 프로그래머들은 데이터를 효율적으로 처리하고 조작할 수 있습니다. 컬렉션 프레임워크는 주로 List, Set, Queue, Deque, Map 인터페이스를 통해 구현됩니다.
리스트(List)
List 인터페이스는 순서가 있는 컬렉션을 정의합니다. 즉, 요소들이 특정 순서로 저장되며 중복 요소를 허용합니다. List의 주요 구현체로는 ArrayList, LinkedList 등이 있습니다.
- ArrayList: 동적 배열을 구현한 클래스로, 크기를 자동으로 조정하는데 효율적입니다. 랜덤 액세스가 가능하여 특정 인덱스의 요소에 빠르게 접근할 수 있습니다.
- LinkedList: 이중 연결 리스트를 구현한 클래스로, 요소의 추가와 삭제가 빈번하게 일어나는 경우에 효율적입니다.
List 사용 시기: 순서를 유지해야 하고, 중복된 요소를 허용해야 할 때 List를 사용합니다. 예를 들어, 동일한 사람이 여러 번 투표할 수 있는 투표 시스템에서는 List를 사용할 수 있습니다.
세트(Set)
Set 인터페이스는 유일한 요소의 집합을 정의합니다. 즉, 중복된 요소를 허용하지 않습니다. Set의 주요 구현체로는 HashSet, TreeSet 등이 있습니다.
- HashSet: 해시 테이블을 사용하여 요소를 저장하는 클래스로, 요소의 추가, 삭제, 검색 등이 빠릅니다. 하지만 요소들의 순서는 보장하지 않습니다.
- TreeSet: 트리 구조를 사용하여 요소를 저장하는 클래스로, 요소들이 정렬된 순서로 유지됩니다.
Set 사용 시기: 중복을 허용하지 않는 요소들의 집합을 다루고자 할 때 Set을 사용합니다. 예를 들어, 학생들의 고유한 ID 집합을 저장할 때 Set을 사용할 수 있습니다.
맵(Map)
Map 인터페이스는 키-값 쌍을 저장하는데 사용됩니다. 키는 중복될 수 없지만, 값은 중복될 수 있습니다. Map의 주요 구현체로는 HashMap, TreeMap 등이 있습니다.
- HashMap: 해시 테이블을 사용하여 키-값 쌍을 저장하는 클래스로, 추가, 삭제, 검색 등이 빠르지만, 요소의 순서는 보장하지 않습니다.
- TreeMap: 트리 구조를 사용하여 키-값 쌍을 저장하는 클래스로, 키에 따라 정렬된 순서로 요소를 유지합니다.
Map 사용 시기: 키-값 쌍을 저장하고자 할 때 Map을 사용합니다. 예를 들어, 사람의 이름(키)과 그들의 나이(값)를 저장하고자 할 때 Map을 사용할 수 있습니다.
아래에 이 내용을 표로 정리해봤습니다:
List | Set | Map | |
정의 | 순서가 있는 컬렉션. 중복 허용. | 유일한 요소의 집합. 중복 불허. | 키-값 쌍을 저장. 키는 중복 불허, 값은 중복 허용. |
주요 구현체 | ArrayList, LinkedList | HashSet, TreeSet | HashMap, TreeMap |
사용 시기 | 순서를 유지해야 하고, 중복을 허용해야 할 때. | 중복을 허용하지 않는 요소의 집합을 다룰 때. | 키-값 쌍을 저장해야 할 때. |
'Java' 카테고리의 다른 글
멀티스레딩 문제 해결하기: 다양한 접근 방법들 (0) | 2023.05.27 |
---|---|
자바에서의 해시: 이해와 활용 (0) | 2023.05.27 |
자바 멀티스레딩 탐구: 동시성을 통한 효율적인 프로그래밍 (0) | 2023.05.25 |
객체지향 설계의 SOLID 원칙 5가지 (0) | 2023.05.25 |
자바에서 @Autowire 대신 생성자 또는 @requiredargsconstructor 어노테이션 사용하기 : 그 이유와 특징 (0) | 2023.05.21 |