본문 바로가기

Knowledge Wiki/Java

JAVA List 클래스

1. List
    순서가 있는 데이터의 집합. 중복을 허용.
    List 인터페이스를 상속받은 클래스는 Vector, ArrayList, LinkedList임.
    Vector와 ArrayList는 거의 비슷한데 Vector는 old 버전, ArrayList는 new 버전임.
    List 인터페이스는 ArrayList와 LinkedList가 핵심. 나머지는 필요할 때 찾아 쓰면 됨.

 

    1) ArrayList
        ArrayList는 동기화 처리가 안되있고 Vector는 동기화 처리가 되어 있다.
        ArrayList는 배열을 사용한다.(즉, 배열 기반의 List임)
        배열 기반이기 때문에 ArrayList(int initialCapacity) 생성자를 통해 충분한 공간을 잡아주는 게 좋다.
        subList()의 반환 타입은 Read-Only이기 때문에 만약 변경하려면 

        ArrayList 생성자로 전달해준 다음 새로 만들어진 객체를 사용해야 한다.
        remove() 함수를 호출할 때 아래와 같은 경우를 조심해야 한다

list.remove(1); // 인덱스가 1인 객체를 삭제
list.remove(new Integer(1)); // 1을 삭제

        ArrayList에 모든 객체를 지우고 싶을 땐 앞에서부터 지우지말고 뒤에서부터 지우자.
        버그의 소지도 적고 훨씬 효율적이다.

    2) LinkedList
        배열의 단점을 보완한다.

'Knowledge Wiki > Java' 카테고리의 다른 글

JAVA Map 클래스  (0) 2021.11.30
JAVA Set 클래스  (0) 2021.11.30
JAVA util 클래스들  (0) 2021.11.30
JAVA 래퍼(Wrapper) 클래스와 박싱, 언박싱  (0) 2021.11.30
JAVA Math 클래스 round(), rint()  (0) 2021.11.30