Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
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
관리 메뉴

Super Coding Addict

Ch11. 컬렉션 프레임워크 (2) 본문

JAVA 문법

Ch11. 컬렉션 프레임워크 (2)

밍응애 2021. 2. 22. 22:32

< 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니까)