Notice
Recent Posts
Recent Comments
«   2024/05   »
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
Archives
Today
Total
관리 메뉴

DeFacto-Standard IT

[Java] List Interface 본문

Java/Collection

[Java] List Interface

defacto standard 2017. 10. 3. 19:38

List Interface

 - 데이터의 중복 허용

 - 저장 순서가 유지

 

 

메서드

설명

void add(int index, Object element)

boolean addAll(int index, Collection c)

index위치에 element 또는 Collection c에 포함된 객체들을 추가

Object get(int index)

index위치의 객체 반환

int indexOf(Object o)

객체 o의 위치를 첫 번째 요소부터 찾아서 반환

int lastIndexOf(Object o)

객체 o의 위치를 마지막 요소부터 찾아서 반환

ListIterator listIterator()

ListIterator listIterator(int index)

List 객체에 접근할 수 있는 ListIterator 반환

Object remove(int index)

index위치에 있는 객체를 삭제 후 반환

Object set(int index, Object o)

index위치에 객체 o 저장

List subList(int fromIndex, int toIndex)

fromIndex위치부터 toIndex위치의 객체를 List로 반환

* Collection Interface로부터 상속받는 메서드는 미포함

 

<List를 상속받는 클래스>

1. Vector

2. Stack

3. ArrayList

4. LinkedList
5. 기타 등등


* Vector와 ArrayList

공통점

차이점

 - List Interface를 구현 (저장 순서 유지, 데이터 중복 허용)

 - 데이터의 저장공간이므로 배열 사용 (인덱스는 0부터 시작)

Vector : Thread Safe O

ArrayList : Thread Safe X

-> 멀티쓰레드 프로그래밍이 아닌 경우 Vector, HashTable은 불필요한 기능때문에 성능이 저하되므로

Vector보다는 ArrayList를, HashTable보다는 HashMap을 사용하는 것이 좋다.


* ArrayList와 LinkedList

Collection

Read(접근시간)

Write(추가/삭제)

설명

ArrayList

빠름 (순서대로 존재하므로)

느림

(추가 : 처음부터 끝까지 가야함

삭제 : 빈자리를 메워야 함)

순차적 쓰기는 빠름

비효율적 메모리 사용

LinkedList

느림 (링크를 타고 메모리 여기저기를 돌아다님)

빠름 (노드를 포인터로서 값을 처리만 하면 되므로 빠름)

데이터가 많을수록 접근성이 떨어짐

 

'Java > Collection' 카테고리의 다른 글

Collection Sheet & Selection  (0) 2017.11.17
[Java] List Interface - Vector, ArrayList  (0) 2017.10.03
[Java] Collection Interface  (0) 2017.10.03
Comments