안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.
컬렉션이란?
- 동일한 타입을 묶어 관리하는 자료 구조
컬렉션 프레임워크란?
- 리스트, 스택, 큐, 트리 등의 자료구조에 정렬, 탐색 등의 알고리즘을 구조화해 놓은 프레임워크
- 여러 개의 데이터 묶음 자료를 효과적으로 처리하기 위해 구조화된 클래스 또는 인터페이스의 모음
컬렉션의 특성에 따라 구분하면 크게 List<E>, Set<E>, Map<K, V>로 나뉩니다.
메모리의 입출력 특성에 따라 기존 컬렉션 기능을 확장/조합한 Stack<E>, Queue<E>도 있습니다.(사진에선 누락)
☞ List<E> 컬렉션 프레임워크
- 순서를 유지하고 저장
- 중복 저장 가능
List<E>의 주요 메소드
구분 | 리턴 타입 | 메소드 명 | 기능 |
데이터 추가 | boolean | add(E element) | 매개변수로 입력된 원소를 리스트 마지막에 추가 |
void | add(int index, E element) | index 위치에 입력된 원소 추가 | |
boolean | addAll(Collection<? Extends E> c) | 매개변수로 입력된 컬렉션 전체를 마지막에 추가 | |
boolean | addAll(int index, Collection <? Extends E> c) | index 위치에 입력된 컬렉션 전체를 추가 |
|
데이터 변경 | E | set(int index, E element) | index 위치의 원솟값을 입력된 원소로 변경 |
데이터 삭제 | E | remove(int index) | index 위치의 원솟값 삭제 |
boolean | remove(Object o) | 원소 중 매개변수 입력과 동일한 객체 삭제 | |
void | clear() | 전체 원소 삭제 | |
리스트 데이터 정보 추출 |
E | get(int index) | index 위치의 원솟값을 꺼내 리턴 |
int | size() | 리스트 객체 내에 포함된 원소의 개수 | |
boolean | isEmpty() | 리스트의 원소가 하나도 없는지 여부를 리턴 |
|
리스트 배열 변환 | Object[] | toArray() | 리스트를 Object 배열로 반환 |
T[] | toArray(T[] t) | 입력매개변수로 전달한 타입의 배열로 변환 |
☞ LinkedList
- 인접 참조를 링크해서 체인처럼 관리
- 특정 인덱스에서 객체를 제거하거나 추가하게 되면 바로 앞/뒤 링크만 변경하면 되기 때문에 객체 삭제와 삽입이 빈번하게 일어나는 곳에서는 ArrayList보다 성능 좋음
- 메소드 동기화 X
- 객체 생성 시 저장 용량을 지정할 수 없음 (저장 용량을 매개변수로 갖는 생성자가 없음)
앞/뒤 객체의 정보를 저장하여 연결 되어있는 것을 확인할 수 있습니다.
따라서 특정 위치의 인덱스 번호를 찾아가야할 때는 연결-연결-연결 하여 인덱스 번호를 찾아가므로 속도가 다소 느릴 수 있습니다.
ArrayList<E> 인터페이스의 객체 생성
LinkedList<제네릭 타입 지정> 참조변수 = new LinkedList<제네릭 타입 지정>();
List<제네릭 타입 지정> 참조변수 = new LinkedList<제네릭 타입 지정>();
Collection<제네릭 타입 지정> 참조변수 = new LinkedList<>(); //우항의 제네릭타입지정은 생략 가능
List<Integer> aList1 = new LinkedList<Integer>(); //초기 저장 용량 = 10(기본)
//List<Integer> aList2 = new LinkedList<Integer>(30); //저장 용량 지정 X
이외 ArrayList<E>와 사용 방법이 동일하므로 따로 실습 진행은 하지 않도록 하겠습니다.
ArrayList<E> 참고 링크
https://chanychu.tistory.com/130?category=959041
'Java > Java' 카테고리의 다른 글
컬렉션/List<E>) Queue<E>, 주요 메소드 (0) | 2022.03.31 |
---|---|
컬렉션/List<E>) Stack<E>, 주요 메소드 (0) | 2022.03.31 |
컬렉션/List<E>) Vector<E>, 주요 메소드 (0) | 2022.03.31 |
컬렉션/List<E>) ArrayList<E>, 주요 메소드, 기본 정렬, 기타 정렬 (0) | 2022.03.31 |
컬렉션) 컬렉션 프레임 워크란? 배열의 단점, 컬렉션 사용 이유 (0) | 2022.03.30 |