728x90
1. 컬렉션과 제네릭
1-1. 컬렉션
- 크기가 고정되지 않고 가변성을 확장시킨 자료구조의 모음
- 요소의 개수에 따라 크기 자동조절
- 요소의 삽입, 삭제에 따른 요소의 위치 자동 이동
- 다양한 자료구조를 통해 각각의 활용성이 더해짐
- 다양한 객체들의 삽입, 삭제, 검색 등의 관리가 용이해짐
- Collection<E> 인터페이스를 상속받는 객체들이 이에 속함
1-2. 컬렉션의 계층 구조
1-3. 제네릭
- 컬렉션타입 선언시 컬렉션 안에 들어가는 항목의 타입 지정
- 컬렉션의 요소는 객체만 가능
- 기본적으로 int, char, double 등의 기본 타입 사용 불가
- 기본 타입은 Integer, Character, Double 등의 객체로 제네릭 선언
- 기본적으로 int, char, double 등의 기본 타입 사용 불가
- Collection<E>
- <E> : 컬렉션의 항목 타입
- Map<K,V>
- <K> : 키 항목타입
- <V> : 값 항목타입
2. List
2-1. (Linked) 리스트
- 배열과 상반되는 특징을 가지고 있는 순서가 있는 자료구조
- 메모리상에 항목 데이터들이 한공간에 있지 않음
- 항목의 데이터와 다음 항목의 위치를 같이 저장하여 다음 항목을 찾아감
- 헤더 : 다음 항목의 위치를 저장
- 데이터 : 항목의 값을 저장
- 항목을 추가하기가 용이함
- 값추가 시간 복잡도 : 1
- 항목에 접근하려면 헤더부터 시작하여 차례대로 접근
- 접근 및 수정 시간복잡도 : n
- 헤더의 접근 시작위치에 따라 Stack 또는 Queue 구조로 활용 가능
- 꼬리만 접근 : Stack
- 헤더와 꼬리 둘다 접근 : Queue, Deque
2-2. 배열 구조로 만든 리스트
- ArrayList와 Vector 구조는 배열로 이루어져 있음
- 크기가 조정 가능한 배열
- 데이터가 추가되면 배열의 크기를 확장
- Vector 는 동기화가 가능한 리스트
- Linked보다 공간 활용성은 떨어지지만 접근 속도를 훨씬 높힐 수 있음
- 배열의 고정크기에 대한 단점만을 극복
- 인덱스의 접근이 많으면 ArrayList, 데이터의 추가와 헤더 접근이 많으면 LinkedList
2-3. 리스트 생성
LinkedList<Integer> linkedList = new LinkedList<Integer>
반응형
'Java 개념' 카테고리의 다른 글
Collection - LinkedList (0) | 2023.08.22 |
---|---|
Collection-ArrayList (0) | 2023.08.22 |
예외처리 (0) | 2023.08.01 |
인터페이스 (0) | 2023.07.31 |
final, Enum(열거형) (0) | 2023.07.03 |