ArrayList 와 LinkedList 비교.


ArrayList 클래스는 LinkedList 클래스와는 달리 큐로 사용하기에 적합하지 못합니다. 그 이유는 무엇일까요?




ArrayList 클래스는 데이터를 뒤쪽에 추가하게 되어 있다. 결국 큐를 구현하게 되면 앞쪽부터 빼 와야 하는데, 빼 올 때마다 index 파라미터로 넘겨야만 한다. 그래서 불필요하게 많은 함수들을 호출하게 된다.


게다가 앞에서 데이터를 빼 오게 되면, 나머지 데이터를 순서대로 앞쪽으로 채워 주기 위해서 재정렬되어야 하므로 성능 저하가 있을 수 있다.


ArrayList 로 큐를 만들려면, 다음과 같은 식으로 해야 한다.



만약 재정렬되는 것을 막으려고 한다면 데이터를 앞쪽으로 삽입해야 하는데, 이 때 나머지 데이터를 순서대로 뒤쪽으로 채워 주기 위해서 재정렬되어야 하므로 소용이 없다.


무의미하지만, 구현해 보면 다음과 같다.



+ Recent posts