Java
List vs ArrayList
List
- List는 인터페이스로 공통되는 메서드를 추출해 놓은 클래스이다.
- 즉 넓은 개념인 형태이고 ArrayList와 LinkedList가 등이 포함되어 있는 형태이다.
- 특징은 선언을 할때 인터페이스 이기 때문에 사용자가 사용하고 싶은 형태의 클래스를 바꿔주면서 사용할 수 있다.
package array;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class List1 {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<Integer>();
list1 = new LinkedList<Integer>();
}
}
ArrayList
- 하나의 클래스로 크게 일반 클래스와 추상 메서드가 하나 이상 있거나 abstract로 정의된 추상 클래스로 나뉜다.

- 실제로 ArrayList를 파보면 List를 인터페이스로 사용하여 구현하는 구조를 볼 수 있다.
- 추가적으로 배열의 단점인 고정길이의 단점을 극복하여 가변적인 길이로 데이터를 사용할 수 있다.
package array;
import java.util.ArrayList;
public class ArrayList1 {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
System.out.println(arrayList.get(0));
arrayList.set(0 , 5);
System.out.println(arrayList.get(0));
arrayList.remove(0);
System.out.println(arrayList.get(0));
System.out.println(arrayList.size());
}
}