[자료구조] Array List

Array List

Array List란, 동적 배열 중 하나이며 List를 만들 때 내부적으로 배열을 사용하는 것을 말한다.


장점 : 접근이 빠르다

Array List는 내부적으로 배열을 이용하기 때문에 인덱스를 이용해서 접근한다. 이렇게 인덱스를 이용하여 접근하면 해당 값의 위치를 한 번에 찾을 수가 있기 때문에 연결 리스트보다 데이터의 접근이 빠르다.


단점 : 데이터의 추가와 삭제가 느리다

데이터를 추가하려면 기존 데이터들을 뒤로 밀어야 원하는 자리에 넣을 수 있고, 데이터를 삭제한 후에는 그 데이터 뒤에 있던 데이터들을 다 앞쪽으로 당겨야 하기 때문에 연결 리스트보다 데이터의 추가와 삭제가 느리다.


Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//Java
ArrayList<Integer> list = new ArrayList<>();

list.add(10); //데이터 추가
list.add(11); //데이터 추가
list.add(12); //데이터 추가

System.out.println(list); //리스트 출력

for(int i=0; i<list.size(); i++) {
System.out.println(i + "번째 데이터: " + list.get(i)); //리스트의 원소를 하나씩 반복문으로 출력
}

list.remove(1); //1번 째 데이터 삭제

System.out.println();
System.out.println("1번째 데이터 삭제");
System.out.println();

System.out.println(list); //리스트 출력

for(int i=0; i<list.size(); i++) {
System.out.println(i + "번째 데이터: " + list.get(i)); //리스트의 원소를 하나씩 반복문으로 출력
}

Example 실행결과

[10, 11, 12]
0번째 데이터: 10
1번째 데이터: 11
2번째 데이터: 12

1번째 데이터 삭제

[10, 12]
0번째 데이터: 10
1번째 데이터: 12

10, 11, 12 세 개의 데이터를 Array List에 추가한 후 1번 째 데이터인 11을 삭제했다. 이렇게 중간에 있는 데이터를 삭제하면 해당 데이터 뒤에 있던 데이터들이 앞쪽으로 당겨지기 때문에 1번 째 데이터는 12가 된다.

Share