👉 컬렉션(collection)
-> 여러 객체(데이터)를 모아 놓은 것
👉 프레임웍(framework)
-> 표준화, 정형화된 체계적인 프로그래밍 방식
👉 컬렉션 프리임웍(collections framework)
-> 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식
-> 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공
-> java.util패키지에 포함. JDK1.2부터 제공
⛅ List
순서가 있는 데이터의 집합
데이터의 중복 허용
ex) 대기자 명단
구현클래스: ArrayList, LinkedList, Stack, Vector 등
⛅ Set(집합)
순서를 유지하지 않는 데이터의 집합
데이터의 중복 허용 안함
ex) 양의 정수집합, 소수의 집합
구현클래스: HashSet, TreeSet 등
⛅ Map
키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합
순서 유지 안함
키는 중복 허용 안함, 값은 중복 허용 (id와 pwd 생각하면됨)
ex) 우편번호, 지역번호(전화번호), 키-id 값-pwd
(👇Set인터페이스 메서드 - Collection인터페이스와 동일👇)
(👇집합과 관련된 메서드(Collection에 변화가 있으면 true, 아니면 false를 반환👇)
👉 장점
-> 배열은 구조가 간단
-> 데이터를 읽는 데 걸리는 시간(접근시간, access time)이 짧다.
👉 단점
-> 크기 변경X
(크키를 변경해야 하는 경우: 새로운 배열을 생성 후 데이터 복사, 크기 변경을 피하기 위해 충분히 큰 배열을 생성하면 메모리 낭비됨)
-> 비순차적인 데이터의 추가, 삭제에 시간이 많이 걸림
- 배열의 단점을 보완
- 불연속적으로 존재하는 데이터를 연결(link)
- 데이터의 삭제: 단 한 번의 참조변경만으로 가능
- 데이터의 추가: 한 번의 Node객체생성과 두 번의 참조변경만으로 가능
- linked list - 연결리스트. 데이터 접근성이 나쁨
- doubly linked list - 이중 연결리스트. 접근성 향상
- doubly circular linked list - 이중 원형 연결리스트
👼출처
자바의 정석 책 & 유튜브