///////
Search

List (Collection)

날짜
2022/10/05
텍스트

Collection

Collection 이란

여러 원소들을 담을 수 있는 자료구조이다.

Collection의 종류

List : 순서가 있는 목록
Set : 순서가 중요하지 않은 목록 (중복되는 값이 없다)
Queue : 입출력방식 FIFO
Map : key - value 형태로 저장
동적 메모리 할당을 하기 때문에, 선언을 통해서 크기를 정할 필요가 없다.
→ 공간이 필요한 만큼 계속 추가될 수 있음

Collection 사용 이유

1.
일괄된 API : Collection의 일관된 API를 사용하여 Collection 밑에 있는 모든 클래스(ArrayList, Vector, LinkedList 등) Collection에서 상속 받아 통일된 메서드를 사용한다
2.
프로그래밍 노력 감소 : 객체 지향 프로그래밍의 추상화의 기본 개념이 성공적으로 구현되어있다
3.
프로그램 속도 및 품질 향상 : 유용한 데이터 구조 및 알고리즘은 성능을 향상시킬 수 있다 Collection을 사용하여 최상의 구현을 생각할 필요 없이 간단하게 Collection API를 사용하여 구현을 하면 된다

List Interface

List 란

저장된 요소에 순서가 있는 목록 데이터 전용 인터페이스
데이터 중복이 가능하다
인덱스(index) 번호에 의해서 정렬된다 (배열과 비슷)

List의 종류

1.
ArrayList : 동적 배열을 제공. 동기화 불가능
2.
LinkedList : 요소가 연속된 위치에 저장되지 않고, 데이터와 주소 부분이 있는 별도의 객체에 저장. Node, Pointer를 사용한다. (양방향 Pointer 사용)
하나의 리스트에 이전과 다음 주소가 연결되어 있다.
하나를 제거하면 제거된 리스트의 이전, 다음 리스트가 서로 연결된다.
3.
Vector : 동적 배열을 제공. 동기화 가능
4.
Stack : 후입선출을 기본으로 한다. 스택 클래스 / 데이터 구조를 구현할 때 사용

List의 기능

1. List.add() : 삽입

List 에 값을 추가한다.
List<String> listA = new ArrayList<String>(); listA.add("한건주"); listA.add("두건주"); listA.add(new String("세건주")); listA.add(1, "1번째 요소값"); // 1번 index에 값을 추가 System.out.println(listA);
Java
복사
[한건주, 1번째 요소값, 두건주, 세건주]
Java
복사

2. List.get() : 데이터 추출

List 의 index 를 입력해 데이터를 추출한다.
System.out.println(listA.get(0));
Java
복사
[한건주]
Java
복사

3. List.size() : List의 개수 리턴

List 에 데이터가 들어있는 index 값을 리턴한다.
System.out.println(listA.size());
Java
복사
4
Java
복사

4. List.contains() : 데이터 유무 확인

List 에 해당 항목이 있는지 확인 후 boolean 리턴한다.
System.out.println(listA.contains("두건주"));
Java
복사
true
Java
복사

5. List.remove() : 데이터 삭제

List 안의 데이터를 삭제한다. 두 가지 방법이 있다.
1.
remove(Object element) : 동일한 오브젝트 삭제. 삭제 결과를 boolean 으로 리턴
2.
remove(int index) : index의 요소 삭제. 삭제한 요소 리턴
System.out.println(listA.remove(0)); System.out.println(listA.remove("세건주"));
Java
복사
한건주 true
Java
복사