프레임워크 : 사용 방법을 미리 정해 놓은 라이브러리를 의미함
컬랙션 프레임워크는 몇 가지 인터페이스를 통해서 다양한 컬렉션 클래스를 이용할 수 있도록 한다.
정리하자면
- 여러 건의 데이터르 다루기 위해 다양한 자료구조의 구현을 위한 클래스와 인터페이스들의 집합
- 다양한 자료구조의 구현체를 클래스 라이브러리 형태로 제공한다.
- ArrayList , HashSet ...
- 데이터의 자료구조 뿐만 아니라 알고리즘 구현체도 제공한다.
- 클래스에서 데이터를 가공하기 위한 메서드를 제공한다.
- 데이터의 조회, 삭제, 추가, etc ...
애플리케이션을 개발 시 다수의 객체를 저장하고 필요 시 꺼내서 사용하는 경우가 생김
이 때 컬렉션
컬렉션 프레임워크 VS Array
Array | Collection Framework |
데이터 개수 동적으로 변경 불가능 | 데이터 개수 동적인 변경 가능 |
object, Primitive Type 모두 원소로 가질 수 있음 | 오로지 객체만을 원소로 가짐 |
주요 인터페이스가 정의되어 있음 List , Set : Collection INF 상속 Map : 구조상 차이로 상속받지 않음 ( K, V) |
주요 인터페이스
인터페이스 | 특징 | 구현체 |
(Collection) List |
- 순서가 있는 데이터의 집합 - 데이터의 중복을 허용함 |
ArrayList<E> LinkedList<E> Stack<E> |
(Collection) Set |
- 순서가 없는 데이터들의 집합 - 데이터들의 중복을 허용하지 않음 |
HastSet<E> TreeSet<E> |
Map | - Key와 Value로 이루어진 pair 쌍을 가짐 - 데이터들 간 순서가 없음 - Key는 중복 X, Value는 중복 O |
HashMap<K,V> TreeMap<K,V> |
아래에서는 각 자료구조에 대해서 조금 더 상세하게 알아보자 !
[1] List 자료구조
List 컬렉션은 객체를 일렬로 늘어놓은 구조르 가진다.
객체를 인덱스로 관리하기 때문에 객체를 저장하면 자동으로 인덱스가 부여되고, 인덱스를 통해 검색,삭제가 가능하다.
List 컬렉션은 객체 자체를 저장하는 것이 아니라, 객체의 번지를 참조한다.
이 때 동일한 객체를 중복 저장한다면 동일한 번지가 같은 인덱스에 참조되는 것이다.
[1-1] ArrayList (java.util)
ArrayList<String> nameList = new ArrayList<>();
Array와 가장 유사한 컬렉션 클래스로, 내부 데이터 접근을 위한 인덱스 활용
[1-2] Vector
[1-3] LinkedList
[1-4] Stack
[2] Set 자료구조
List 컬렉션과 달리 저장 순서를 유지하지 않는 자료구조이다.
또한 객체를 중복해서 저장할 수 없고, 하나의 null만 저장할 수 있다. (순서X 중복X)
Set 컬렉션 인터페이스의 메소드들은 인덱스를 관리하지 않기 때문에 인덱스를 매개값으로 갖는 메소드가 없다.
[2-1] HashSet
[2-2] TreeSet
[3] Map 자료구조
Map 컬렉션은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가진다.
여기서 키와 값은 모두 객체를 가리킨다.
키는 중복되어 저장할 수 없지만, 값은 중복되어 저장하는 것이 가능하다.
이 때 기존 키와 동일한 키로 값이 들어오면 , 값이 대체된다.
[3-1] HashMap
[3-2] HashSet
[3-3] Hashtable
[3-4] ProPerties
'Tech Stack > JAVA' 카테고리의 다른 글
제네릭 (Generic) (0) | 2022.02.07 |
---|