티스토리 뷰

Goal 

 - Collection의 하위 인터페이스인 List 인터페이스에 대해 알아본다

 

1. List 인터페이스

 - 객체를 순서에 따라 저장하고 관리하는데 필요한 메서드가 선언된 인터페이스 

 - 배열의 기능을 구현하기 위한 메서드가 선언됨

 - ArrayList, Vector, LinkedList

 

 

1-1 ArrayList와 Vector

 - 객체 배열 클래스 

 - Vector는 자바 2부터 제공된 클래스, 현재는 ArrayList가 더 최적화되어 있기 때문에 Vector를 많이 사용하지는 않음. 

 - Vector는 멀티 쓰레드 프로그램에서 동기화를 지원함.

 * 동기화 (Synchronization) :  두 개의 쓰레드가 동시에 하나의 리소스에 접근 할 때 순서를 맞추어서 데이터의 오류가 방지하지 않도록 함.

 - Capacity : 처음에 생성될 때 배열의 크기 (배열의 용량)

 - size : 배열에 들어가 있는 element의 갯수

 

1-2 ArrayList 와 LinkedList

 - 둘다 자료의 순차적 구조를 구현한 클래스

 - ArrayList는 배열을 구현한 클래스로 논리적 순서와 물리적 순서가 동일 함.

 - LinkedList는 논리적으로 순차적인 구조지만, 물리적으로는 순차적이지 않을 수 있음.

 

사진 1) LinkedList의 구조

사진 2) LinkedList에서 자료의 추가와 삭제

자료의 추가 
자료의 삭제

1-3 LinkedList의 사용 예제

 

package 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);
        myList.add(1, "D");
        System.out.println(myList);
        
        myList.removeFirst();
        System.out.println(myList);
        
        for (int i = 0; i < myList.size(); i++) {
            String s = myList.get(i);
            System.out.println(s);
        }

    }

}

'Java > Java 올인원 패키지' 카테고리의 다른 글

27. 내부 클래스 (Java)  (0) 2020.03.21
25. Set 인터페이스 (Java)  (0) 2020.03.19
23. 컬렉션 프레임워크 (Java)  (0) 2020.03.19
22. 제네릭 (Java)  (0) 2020.03.19
21. String, Wrapper 클래스  (0) 2020.03.19
댓글