SMALL
안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.
컬렉션이란?
- 동일한 타입을 묶어 관리하는 자료 구조
컬렉션 프레임워크란?
- 리스트, 스택, 큐, 트리 등의 자료구조에 정렬, 탐색 등의 알고리즘을 구조화해 놓은 프레임워크
- 여러 개의 데이터 묶음 자료를 효과적으로 처리하기 위해 구조화된 클래스 또는 인터페이스의 모음
컬렉션의 특성에 따라 구분하면 크게 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) | 입력매개변수로 전달한 타입의 배열로 변환 |
☞ Vector<E>
- 기본적으로 ArrayList와 동등
- 동기화를 제공 (멀티 쓰레드에 적합)
- 싱글 쓰레드에서는 무겁고 많은 리소스를 차지하는 Vector 대신 ArrayList를 쓰는 것이 훨씬 효율적
Vector<E> 인터페이스의 객체 생성
Vector<제네릭 타입 지정> 참조변수 = new Vector<제네릭 타입 지정>();
List<제네릭 타입 지정> 참조변수 = new Vector<제네릭 타입 지정>();
Collection<제네릭 타입 지정> 참조변수 = new Vector<>();
Vector<Integer> list1 = new Vector<>(30); //초기 저장 용량 = 30
List<Integer> list2 = new Vector<>();
Collection<Integer> list3 = new Vector<>();
멀티 쓰레드에서 사용할 수 있다는 점 (동기화 제공)을 제외하면 사용 방법이 ArrayList<E> 와 동일하기 때문에 따로 실습 진행은 하지 않도록 하겠습니다.
ArrayList<E> 참고 링크
https://chanychu.tistory.com/130?category=959041
LIST
'Java > Java' 카테고리의 다른 글
컬렉션/List<E>) Stack<E>, 주요 메소드 (0) | 2022.03.31 |
---|---|
컬렉션/List<E>) LinkedList<E>, 주요 메소드 (0) | 2022.03.31 |
컬렉션/List<E>) ArrayList<E>, 주요 메소드, 기본 정렬, 기타 정렬 (0) | 2022.03.31 |
컬렉션) 컬렉션 프레임 워크란? 배열의 단점, 컬렉션 사용 이유 (0) | 2022.03.30 |
자바입출력/byte기반) 객체를 대상으로한 입출력 (ObjectInputStream, ObjectOutputStream) (0) | 2022.03.29 |