컬렉션프레임워크(Collections Framework)
- 컬렉션(collection): 여러 객체(데이터)를 모아 놓은 것을 의미
- 프레임워크(framework): 표준화, 정형화된 체계적인 프로그래밍 방식 (자바는 spring)
- 컬렉션 프레임워크(collections framework)
- 컬렉션(다수의 객체)을 다루기 위한 표준화(틀)된 프로그래밍 방식
- 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스 제공(객체를 다룬다 -> 저장, 삭제, 검색, 정렬)
- java.util패키지에 포함
- 컬렉션 클래스(collection class)
- 다수의 데이터를 저장할 수 있는 클래스(예 Vector, ArrayList, HashSet)
컬렉션 프레임웍의 핵심 인터페이스
1) List 2) Set 3) Map
인터페이스 | 특징 |
List 순서o중복o |
(저장)순서가 있는 데이터의 집합. 데이터의 중복을 허용한다. |
구현클래스: ArrayList, LinkedList, Stack, Vector 등 | |
Set 순서x중복x |
순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않는다. |
구현클래스: HashSet, TreeSet, SortedSet | |
Map 순서x 중복(키x값o) |
키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합. 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다. 예) 우편번호, 지역번호(전화번호), id와 password 두 개의 데이터를 한 쌍으로 묶어놓은 것 |
구현클래스: HashMap, TreeMap, Hashtable, Properties 등 |
Collection인터페이스
-> List와 Set의 공통부분을 모아서 Collection이라는 인터페이스 정의
Collection인터페이스의 메서드
- Collection인터페이스는 컬렉션 클래스에 저장된 데이터를 읽고, 추가하고 삭제하는 컬렉션을 다루는데 가장 기본적인 메서드들을 정의
1. List인터페이스 – (저장)순서 O, 중복 O
*List인터페이스의 메서드 – Collection인터페이스와 비슷함
get 읽어오는 것, set 변경하는 것
검색: indextOf는 왼쪽에서 오른쪽으로 lastIndexOf는 오른쪽에서 왼쪽으로
sort: 정렬 subList: 일부만 뽑아내는 것(전체에서) From ~ to
2. Set인터페이스 – (저장)순서 X, 중복 X
*Set인터페이스의 메서드 – Collection인터페이스와 비슷함
*집합과 관련된 메서드(Collection에 변화가 있으면 true, 아니면 false를 반환: Boolean 반환)
3. Map인터페이스 – 순서X, 중복(키X, 값O)
- LinkedHashMap(순서가 있음)
- Hashtable(옛날버전)과 HashMap(현재)은 같다. Hashtable은 동기화가 되어있고, HashMap은 동기화 되어있지 않음
- 기존에 저장된 데이터와 중복된 키와 값을 저장하면 기존의 값은 없어지고 마지막에 저장된 값이 남게 된다.
* 맵 인터페이스의 메서드
추가(put, putAll) | 삭제(remove) |
검색(containsKey, containsValue, get) | 읽기(Set entrySet( ), Set KeySet( ), Collection values( )) |
- Map인터페이스에서 values는 중복을 허용하기 때문에 반환타입이 Collection(List+set, List는 중복 허용, set은 중복 허용 xx)이고, key는 중복을 허용하지 않기 때문에 반환타입이 Set!
'멀티캠퍼스 풀스택 과정 > Java의 정석' 카테고리의 다른 글
자바의 정석8-3 스택과 큐/Iterator, ListIterator, Enumeration (0) | 2022.01.10 |
---|---|
자바의 정석8-2 ArrayList, LinkedList (0) | 2022.01.08 |
자바의 정석7-2 형식화 클래스(DecimalFormat,SimpleDateFormat) (0) | 2022.01.08 |
자바의 정석7-1 날짜와 시간클래스(Calendar, Date) (0) | 2022.01.08 |
자바의 정석6-4 오토박싱 & 언박싱 (0) | 2022.01.07 |