1. 구조 및 특징
(1) 구조 : 객체를 일렬로 늘어놓음
(2) 특징
① 인덱스로 객체 관리
- 객체 저장시 자동으로 인덱스 부여
- 객체 자체를 저장하지 않고 객체의 번지를 참조
- 인덱스로 객체 검색 및 삭제
② 제네릭 타입
- 메소드의 매개 변수 타입 및 리턴 타입은 구현 객체를 생성할 때 결정
(* generics : 정해진 타입을 넣고 빼기 위해 객체를 넣을 때 타입을 지정)
2. List 인터페이스 메소드
- 특징 : 인덱스로 객체를 관리하기 때문에 인덱스가 매개값인 메소드 다수
기능 |
메소드 |
메소드 설명 |
예시 |
객체 추가 |
add( ) |
객체를 맨 끝에 추가 |
list.add("abc") |
add(int index, E) |
인덱스에 객체 추가 |
list.add(3, "abc") |
|
set(int index, E) |
인덱스에 저장된 객체를 주어진 객체로 변경 |
|
|
객체 검색 |
contains(Object) |
객체 저장 여부 |
|
get(int index) |
인덱스에 저장된 객체 리턴 |
list.get(3) |
|
isEmpty( ) |
컬렉션이 비어있는지 조사 |
|
|
int size( ) |
저장되어 있는 전체 객체 수 리턴 |
|
|
객체 삭제 |
clear( ) |
저장된 모든 객체 삭제 |
|
remove(int index) |
인덱스에 저장된 객체 삭제 |
list.remove(3) |
|
remove(Object) |
객체 삭제 |
list.remove("abc") |
3. List 인터페이스의 구현 클래스
(1) Arraylist
① 특징
- 내부 배열에 객체를 저장, 인덱스로 관리
- 저장 용량을 초과하여 객체들이 들어와도 자동으로 저장 용량이 늘어남
- 객체 추가시 인덱스 0부터 차례대로 저장
- 특정 인덱스의 값을 제거하거나 삽입하면 인덱스 값 또한 인덱스 값이 1씩 당겨지거나 1씩 밀려남
② 사용법
- 인덱스 검색
- 맨 마지막에 객체를 추가하는 경우
(* 참고 : 빈번한 객체 삽입과 삭제 발생시 ArrayList 사용 부적합)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | // 1. 컬렉션 생성 //(1) 기본 생성자 호출, 기본으로 10개의 객체를 저장할 수 있음 //(2) 용량의 크기를 매개값으로 받는 생성자 사용 가능 List<String> list = new ArrayList<String>(); List<String> list = new ArrayList<String>(30); // 2. 객체 추가 list.add("JAVA") list.add("JSP") list.add("1,Database") // 3. 객체 얻기 //(1) 저장된 총 객체 수 얻기 : list.size() //(2) 인덱스의 객체 얻기 //(3) for문 사용 : 저장된 객체 수만큼 반복 //(4) 향상된 for문 사용 : list(변수명)에서 저장된 객체를 하나씩 가져옴, 저장된 객체 수만큼 반복 int size = list.size(); list.get(1); for(int i = 0; i<list.size(); i++) { String str = list.get(i); } for(String str : list) { } //4. 객체 삭제 list.remove(2); list.remove(2); list.remove("JSP"); |
(2) LinkedList
① 특징
- 인접 참조를 링크하여 체인처럼 관리
- 특정 인덱스의 객체를 제거하거나 삽입할 때 제거한 객체의 앞뒤 링크만 변경, 나머지 링크는 변경되지 않음
- 처음 생성될 때 어떤 링크도 만들어지지 않으므로 내부는 비어있음
② 사용법
- 객체를 중간에 추가 또는 삭제할 경우 사용
1 2 3 | // 1. 컬렉션 생성 List<String> list = new LinkedList<String>(); |
(3) Vector
① 특징
② 예제
[Information.java] 개인정보객체
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class Inforamtion{ String name; int number; String address; public Information(String name, int number, String address{ this.name = name; this.number = number; this.address = adress; } } |
[VectorExample.java] Information 객체를 저장하는 Vector
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import java.util.*; public class VectorExample{ public static void main (String[] args){ // 1.Vector 생성 List<Information> list = new Vector<Information>(); // 2.Information 객체 저장 list.add(new Information("홍길동", "01000000000", "서울") list.add(new Information("김철수", "01000000000", "부산") list.add(new Information("김영수", "01000000000", "울산") list.add(new Information("이은수", "01000000000", "인천") list.add(new Information("김영희", "01000000000", "대전") // 3.객체 삭제 (김영수 삭제, 김영희 삭제) list.remove(2) list.remove(3) //4.객체 검색 for(int i = 0; i<list.size(); i++) { Information info = list.get(i); System.out.println(info.name + "\t" + info.number + "\t" + info.address); } } |
'프로그래밍 > Java' 카테고리의 다른 글
[JAVA 이론] Map Collection (0) | 2018.11.18 |
---|---|
[JAVA 이론] Set Collection (0) | 2018.11.15 |
[JAVA 이론] 컬렉션 프레임워크(Collection Framework) (0) | 2018.11.12 |
[JAVA 이론] Iterator (반복자) (0) | 2018.10.31 |
[JAVA 코드] 문장 > 단어 (0) | 2018.10.31 |
댓글