[JAVA] Array(배열)와 List(리스트)의 차이(+ ArrayList)

LeeSeungEun·2023년 5월 9일
0

JAVA

목록 보기
5/28

1. Array(배열)

  • 여러 개의 데이터를 하나의 이름으로 그룹핑해서 관리 하기 위한 자료구조이다.

2.List(리스트)

  • 리스트도 배열과 같이 데이터를 그룹핑해서 관리하기 위한 자료구조

3. 차이점

  • 배열의 크기는 length를 쓰고, 리스트의 크기는 size를 사용한다.
  • 리스트의 경우, 쓰지 않는 메모리할당이 더 많아지기 때문에 크기가 정해져있는 데이터의 그룹핑을 하고 싶다면 배열이 더 효율적인 선택한다.
  • ex) 문제에서 n번이라는 횟수(크기)가 정해졌을 때는 배열을 쓰고,
    아무런 횟수(크기)가 주어지지 않았을 땐 ArrayList를 사용한다.

4. ArrayList

  • 자바의 List 종류에는 ArrayList와 LinkedList가 있는데, 그 중 하나인 ArrayList는 Array(배열)와 List(리스트)의 장점을 합친 것이다.
  • 배열의 특성인 index로 식별자를 쓰는 것이 가능하고,리스트 특성그대로 크기를 동적으로 사용할 수 있다.
  • 나머지 차이는 배열의 차이와 그대로 동일하다.

5. 코드 비교

  • 배열(Array)

    • 배열은 크기가 정해져 있으며, 크기를 초과하여 데이터를 추가하려면 새로운 배열을 생성하여 데이터를 복사해야 한다.
    • 배열의 요소를 추가하려면, 해당 인덱스에 값을 대입하면 된다.
    • 배열의 요소를 제거하려면, 해당 인덱스의 값을 삭제하고, 빈 자리를 채우기 위해 나머지 요소를 한 칸씩 앞으로 이동해야 한다.
// 배열 생성
int[] arr = new int[5];

// 값 추가
arr[0] = 1;
arr[1] = 2;

// 값 제거
arr[1] = 0;
for (int i = 1; i < arr.length; i++) {
    arr[i-1] = arr[i];
}
arr[arr.length-1] = 0;
  • 리스트(List)
    • 리스트는 크기가 가변적이며, 요소를 추가하거나 제거할 때마다 자동으로 크기가 조절된다.
    • 리스트의 요소를 추가하려면, add() 메서드를 사용하면 된다.
    • 리스트의 요소를 제거하려면, remove() 메서드를 사용하면 된다.
// 리스트 생성
List<Integer> list = new ArrayList<>();

// 값 추가
list.add(1);
list.add(2);

// 값 제거
list.remove(1);
  • 따라서, 배열은 크기가 고정적이지만 인덱스를 통해 빠르게 요소에 접근할 수 있는 반면, 리스트는 크기가 가변적이지만 요소를 추가하거나 제거할 때 편리하게 사용할 수 있다.

5. 출처

https://suzyalrahala.tistory.com/24

0개의 댓글