일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 사칙연산
- array
- 수학
- 카데인 알고리즘
- Easy
- Kadane's Algorithm
- heroku
- SpringBoot 2
- scanner
- hash table
- 자바입력
- R
- 자바 thread 실행 순서 제어
- 자바 스레드 실행 순서 제어
- JAVA11
- input
- Today
- Total
DeFacto-Standard IT
[Java] List Interface 본문
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 |