Java 08 - 컬렉션 프레임워크 1
2021. 7. 23. 21:45ㆍ프로그래밍 언어/JAVA
컬렉션 프레임워크
Collection(컬렉션)은 여러 객체 및 데이터들을 모아 놓은 것을 의미한다. Framework(프레임워크)는 컬렉션을 다루기 위한 표준화된 프로그래밍 방식이다. 즉, 컬렉션 프레임워크(Collection Framework)는 객체의 집합을 다루기 위한 표준화된 프로그래밍 방식을 의미한다.
Collection을 편리하게 다루기 위한 다양한 클래스(java.util 패키지)를 제공하며 다수의 데이터를 저장할 수 있는 Vector, ArrayList, HashSet 등의 클래스를 제공한다.
핵심 인터페이스
- List : 순서가 있는 데이터의 집합. 데이터의 중복을 허용한다. (ArrayList, LinkedList, Stack, Vector 등)
- Set - 순서를 유지하지 않는 데이터의 집합. 데이터 중복을 허용하지 않는다. (HashSet, TreeSet 등)
- Map : 키와 값의 쌍으로 이루어진 데이터의 집합. 순서 유지X, 키 중복X, 값 중복O (HashMap, TreeMap, Hashtable, Properties 등)
List 인터페이스 메서드
- 순서가 있는 데이터 집합니다.
- 데이터의 중복이 허용된다.
- 주요 메서드 : add(), addAll(), get(), indexOf(), lastIndexOf(), listIterator(), remove(), set(), sort(), subList()
Set 인터페이스 메서드
- 순서가 없는 데이터 집합이다.
- 중복을 허용하지 않는다.
- 주요 메서드 : Collection 인터페이스 메서드와 동일하게 사용한다.
Map 인터페이스 메서드
- 순서가 없는 데이터 집합이다.
- 키 중복을 허용하지 않는다.
- 값 중복을 허용한다.
- 주요 메서드 : clear(), containsKey(), containsValue(), entrySet(), get(), equals(), hashCode(), isEmpty(), keySet(), put(), putAll(), remove(), size(), values()
Vector와 ArrayList
- ArrayList는 기존의 Vector를 개선한 것으로 구현 원리가 같고 기능적으로 동일하다.
- Vector는 자체적으로 동기화처리가 되어 있으나 ArrayList는 그렇지 않다.
- Vector는 한번에 하나의 스레드만 접근 가능하며, ArrayList는 동시에 여러 스레드에서 작업이 가능하다.
- List 인터페이스를 구현하므로 저장순서가 유지되고 중복을 허용한다,
- 데이터의 저장공간으로 배열을 사용한다.
- 필요에 따라 크기를 동적으로 조절할 수 있다.
ArrayList의 장점과 단점
- 배열은 구조가 간단하고 데이터를 읽는데 걸리는 시간이 짧다.
- 순차적인 데이터의 추가/삭제가 빠르다.
- 배열 생성 후 크기를 직접 변경할 수 없다.
- 크기 변경을 피하기 위해 충분히 큰 배열을 생성하면 메모리가 낭비된다.
- 비순차적인 데이터의 추가/삭제에 시간이 많이 걸린다.
LinkedList
- 배열과 달리 불연속적으로 존재하는 데이터를 연결한다.
- 순차적인 데이터 추가/삭제는 ArrayList가 빠르지만 비순차적인 추가/삭제는 LinkedList가 빠르다.
- 접근시간이 ArrayList에 비해 느리고 데이터가 많을수록 접근성이 떨어진다.
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
Java 08 - 컬렉션 프레임워크 2 (0) | 2022.03.20 |
---|---|
Java 07 - java.lang 패키지 (0) | 2021.07.15 |
Java 06 - 객체지향개념 2 (0) | 2021.06.28 |
Java 05 - 객체지향개념 1 (0) | 2021.06.22 |
Java 04 - 조건문과 반복문 (0) | 2021.06.08 |