Super Coding Addict
Ch11. 컬렉션 프레임워크 (2) 본문
< List 인터페이스 >
* List 인터페이스
- Collection 하위 인터페이스
- 객체를 순서에 따라 저장하고 관리하는 데 필요한 메서드가 선언된 인터페이스
- ex) ArrayList, Vector ...
* ArrayLIst와 Vector
- 둘다 객체 배열 클래스
- Vector는 자바2부터 제공된 클래스로 일반적으로는 ArrayLIst를 더 많이 사용한다
- Vector는 멀티 쓰레드 프로그램에서 동기화(synchronization)을 지원한다
- capacity : 배열의 전체 크기
- size : 배열 안에 들어있는 자료의 개수(?)
* ArrayList와 LinkedList
- 둘다 자료의 순차적 구조를 구현한 클래스
- ArrayList는 배열을 구현한 클래스, 논리적 순서 = 물리적 순서
--> 빠르게 i번째 위치한 요소를 찾을 수 있음
- LinkedList는 논리적으로는 순차적 구조 but 물리적으론 순차적이지 않을 수 있음
--> 다음 요소에 대한 레퍼런스를 가지고 있고, 자료 추가/삭제가 효율적
- 예제
# LinkedListTest 클래스
package ch11.collection;
import java.util.LinkedList;
public class LinkedListTest {
public static void main(String[] args) {
LinkedList<String> myList = new LinkedList<String>();
myList.add("A");
myList.add("B");
myList.add("C");
System.out.println(myList); //toString
myList.add(1, "D");
System.out.println(myList); //toString
myList.removeLast();
System.out.println(myList); //toString
for(int i=0; i<myList.size(); i++) {
String s = myList.get(i);
//cf. SET은 get을 할 수 없음
System.out.println(s);
}
}
}
--> add(index, data)로 중간에 끼워넣을 수도 있음! => ArrayList와의 차이점!
--> SET은 get을 할 수 없다 (순서X니까)
'JAVA 문법' 카테고리의 다른 글
Ch11. 컬렉션 프레임워크 (4) (0) | 2021.02.24 |
---|---|
Ch11. 컬렉션 프레임워크 (3) (0) | 2021.02.22 |
Ch11. 컬렉션 프레임워크 (1) (0) | 2021.02.21 |
Ch14. 자바 입출력(8) - 직접 코딩해보기 (0) | 2021.02.21 |
Ch14. 자바 입출력(7) (0) | 2021.02.21 |