시작
자바 컬렉션 프레임워크는 List, Set, Map 인터페이스를 기반으로 컬렉션(Collection) 클래스를 제공하는 기능을 가지고 있습니다. 리스트는 순서가 있고, 중복을 허용하는 배열과 유사한 자료구조를 구현하는데 사용됩니다. 셋은 순서가 없고, 중복을 허용하지 않는 자료구조를 구현하는데 사용됩니다. 맵은 키와 값의 쌍의 데이터를 저장하는데 사용됩니다. 이들 인터페이스를 구현하는 각각의 클래스는 다양한 특성을 가지고 있습니다.
(위 사진은 내용과 무관함 Pexels 제공 사진)
세부내용
1. List인터페이스
List인터페이스는 자바 컬렉션 프레임워크에서 가장 많이 사용되는 인터페이스로, 데이터를 순서대로 저장하고 관리할 수 있는 인터페이스입니다. List인터페이스는 같은 자료형의 여러 값들을 쉽게 저장하고 관리할 수 있는 기능을 제공합니다. List인터페이스는 데이터를 추가하거나 삭제하거나 갱신할 수 있으며, 특정한 위치에 있는 데이터를 가져오거나 변경할 수 있습니다. 또한, 데이터의 순서를 변경할 수도 있습니다. List인터페이스를 이용해 배열과 연관된 연산을 효율적으로 수행할 수 있기 때문에 다양한 프로그램에 자주 사용됩니다.
2. Set인터페이스
Set 인터페이스는 List 인터페이스에서 상속받은 인터페이스로, 중복을 허용하지 않는다는 특징이 있습니다. Set 인터페이스를 구현하는 클래스는 HashSet, TreeSet, LinkedHashSet 등이 있습니다.
HashSet은 객체를 저장할 때 해시 코드를 이용해서 저장하고, 검색 속도가 빠르며 순서도 정해져 있지 않습니다.
TreeSet은 저장할 때 정렬된 순서로 저장되며 저장된 객체는 이진 트리 구조로 관리됩니다.
LinkedHashSet은 객체가 저장된 순서를 따르며, 객체를 저장할 때 이전 객체와 연결되어 저장됩니다.
Set 인터페이스의 특징으로는 객체가 저장된 순서가 중요하지 않고, 중복이 허용되지 않는 등의 특징이 있습니다. 또한 Set 인터페이스는 요소를 추가, 삭제, 검색, 복사하는 등의 작업을 쉽게 할 수 있는 기능을 제공합니다.
3. Map인터페이스
Map인터페이스는 키(Key)와 값(Value)의 쌍으로 이루어진 데이터 컬렉션이다. 키는 반드시 유일해야하며, 값은 중복될 수 있다. Map인터페이스는 해쉬맵(HashMap), 링크드해쉬맵(LinkedHashMap), 트리맵(TreeMap) 등으로 구현되는데, 각각 다른 속도와 기능을 가지고 있다. 해쉬맵은 키-값의 쌍을 저장할 때 매우 빠르게 접근할 수 있으며, 링크드해쉬맵은 해쉬맵과 같지만 입력된 순서대로 데이터가 저장되기 때문에 좀 더 높은 속도를 보장할 수 있다. 트리맵은 트리 자료구조를 사용하기 때문에 키를 사용해 정렬된 값을 얻을 수 있다. 자바의 Map인터페이스는 키로 값을 찾아내는 데 유용하고, 자바에서 자료구조를 구성할 때 매우 중요한 역할을 한다.
4. List vs Set
List 인터페이스와 Set 인터페이스는 모두 자바 컬렉션 프레임워크에서 사용되는 인터페이스이다. List는 중복된 데이터를 허용하는 순서가 있는 배열 구조를 나타내며, Set은 중복된 데이터를 허용하지 않고, 순서가 없는 집합 구조를 나타낸다. List는 get() 메소드를 통해 인덱스에 해당하는 값을 참조하거나 수정할 수 있고 Set은 같은 값이 여러 번 들어가더라도 중복을 허용하지 않기 때문에 이는 중복 데이터를 제거하거나 중복되지 않는 요소만 모아놓을 때 유용하게 사용될 수 있다.
5. List, Set, Map 간의 차이점
List, Set, Map 인터페이스는 Java 컬렉션 프레임워크에서 중요한 역할을 하는 인터페이스들이다. 각각 다른 특징을 가지고 있어 프로그래밍을 할 때 필요한 데이터 구조를 선택하기 위해 많은 사람들이 고민을 하곤 한다.
List는 순서가 있는 자료구조로, 중복을 허용하며 인덱스를 통해 접근할 수 있다. Set은 List와 달리 순서가 없고, 중복을 허용하지 않는 자료구조로 접근할 때 인덱스를 사용할 수 없고, 제공하는 메소드를 이용해 접근해야 한다.
마지막으로 Map은 key와 value를 가지고 있는 자료구조이며, key로 value를 가져오거나 저장하는 방법이다. List와 Set과 달리 key로 value를 가져오거나 저장하는 방식이라는 특별한 기능이 있다.
(위 사진은 내용과 무관함 Pexels 제공 사진)
마치며
자바 컬렉션 프레임워크는 객체를 다루기 위해 제공되는 인터페이스로 List, Set, Map 이 있습니다. List는 객체를 순서대로 저장하고 인덱스를 사용하여 접근할 수 있는 컬렉션이며, Set은 중복된 데이터를 저장하지 않는 객체를 저장하는 컬렉션입니다. 그리고 Map은 키와 값으로 구성된 쌍을 저장하는 컬렉션입니다. List, Set, Map 인터페이스는 객체를 저장하고 관리하는데 가장 기본적인 역할을 하며 자바 프로그래밍을 하기 위해 반드시 알아야 하는 개념입니다.
함께 보면 좋은 영상
KBS 천상의 컬렉션 2회 / KBS 20170402 방송