본문 바로가기
개발/Java collection framework

[Java] List 컬랙션

by 두리두리안 2021. 6. 11.

List 이론 정리 

List 컬랙션은 객체를 일려로 늘어놓은 구조를 가지고 있다. 

객체를 인덱스로 관리하기 때문에 객체를 저장하면 자동 인덱스가 부여되고 인덱스로 객체를 검색, 삭제 할 수 있는 기능을 제공 

List 컬랙션은 객체 자체를 저장하는 것이 아니라 객체의 번지를 참고한다. 

동일한 객체를 저장할 수 있는데 이 경우에는 동일한 번지를 참고 한다.

또한  null도 저장이 가능이 경우 해당 Index는 객체를 참고 하지않는다. 

 

 

List 컬랙션에는 대표적 3가지 

  • ArrayList
  • Vector
  • LinkedList

1. ArrayList

arrayList는 List 인터페이스의 구현 클래스로 ArrayList에 객체를 추가하면 객체가 인덱스로 관리 된다.

 

일반 배열과 ArrayList는 Index로 객체를 관리한다는 점에서는 유사하지만 큰 차이점을 가지고 있다.

배열은 생성할 떄 크기가 고정되고 사용 중에 크기를 변경할 수 없다. 

ArrayList는 저장 용량을 초과한 객체들이 들어오면 자동적으로 저장용량이 늘어난다.

 

 

String형 저장하는 ArrayList는 밑과 같이 생성할 수 있다. 

List<String> list = new ArrayList<String>();

 

기본 생성자는 ArrayList 객체를 생성하면 내부에 10개의 객체를 저장할 수 있는 초기 용량을 가지게 된다. 

저장되는 객체 수가 늘어나면 용량이 자동으로 증가한다. 

만약에 처음부터 용량을 크게 잡게 싶다면 용량의 크기를 매개값으로 받는 생성자를 이용하면 된다

List<String> list = new ArrayList<String>(30);

 

★중요★

ArrayList에 객체를 추가하면 인덱스 0부터 차례대로 저장된다. 

특정 인덱스의 객체를 제거하면 바로 뒤 인덱스부터 마지막 인덱스까지 모두 앞으로 1씩 밀려난다. 

마찬가지로 특정 인덱스에 객체를 삽입하면 해당 인덱스부터 마지막 인덱스까지 모두 1씩 밀려난다. 

package Part15_프레임워크.ArrayList;

import java.util.ArrayList;
import java.util.List;

public class ArrayListExample {
    public static void main(String[] args){
        List<String> list = new ArrayList<>();

        list.add("Java");
        list.add("JDBC");
        list.add("Servlet/JSP");
        list.add("2, DataBase");
        list.add("iBATIS");
        
        int size = list.size(); // 저장된 총 객체 수 얻기
        System.out.println("총 객체수 > " +size);
        System.out.println();

        String skill = list.get(2);
        System.out.println("2 > " +skill);
        System.out.println();

        for(int i=0; i<list.size(); i++){
            String str = list.get(i);
            System.out.println(i + " : " +str);
        }
        System.out.println();

        list.remove(2);
        list.remove(2);
        list.remove("iBATIS");

        for(int i=0; i<list.size(); i++){
            String str = list.get(i);
            System.out.println(i + " : " +str);
        }
    }
}


2. Arrays.asList(T... a)

고정된 객체들로 구성된 List를 생성할때 사용한다.

List<T> list = Arrays.asList(T... a); 
  • 개발을 하다보면 배열을 리스트로 바꾸어야 할 때가 있다.
  • java.util에는 Arrays 클래스가 존재한다.
  • Arrays.asList는 배열을 리스트로 반환해 준다.

 

'개발 > Java collection framework' 카테고리의 다른 글

[Java] LIFO와 FIFO 컬랙션  (0) 2021.06.15
[Java] Map 컬랙션  (0) 2021.06.15
[JAVA] Set 컬랙션  (0) 2021.06.15
[Java] 컬렉션 프레임 워크란  (0) 2021.06.11