ArrayList 와 LinkedList 비교.
ArrayList 클래스는 LinkedList 클래스와는 달리 큐로 사용하기에 적합하지 못합니다. 그 이유는 무엇일까요?
ArrayList 클래스는 데이터를 뒤쪽에 추가하게 되어 있다. 결국 큐를 구현하게 되면 앞쪽부터 빼 와야 하는데, 빼 올 때마다 index 파라미터로 넘겨야만 한다. 그래서 불필요하게 많은 함수들을 호출하게 된다.
게다가 앞에서 데이터를 빼 오게 되면, 나머지 데이터를 순서대로 앞쪽으로 채워 주기 위해서 재정렬되어야 하므로 성능 저하가 있을 수 있다.
ArrayList 로 큐를 만들려면, 다음과 같은 식으로 해야 한다.
만약 재정렬되는 것을 막으려고 한다면 데이터를 앞쪽으로 삽입해야 하는데, 이 때 나머지 데이터를 순서대로 뒤쪽으로 채워 주기 위해서 재정렬되어야 하므로 소용이 없다.
무의미하지만, 구현해 보면 다음과 같다.
'Programming > 뇌를 자극하는 Java 프로그래밍' 카테고리의 다른 글
[ 뇌를 자극하는 Java 프로그래밍 ] 13장, 이것만은 알고 갑시다 (0) | 2013.05.13 |
---|---|
[ 뇌를 자극하는 Java 프로그래밍 ] 13장, Exercise 13-4 (0) | 2013.05.13 |
[ 뇌를 자극하는 Java 프로그래밍 ] 13 장, Excercise 13-3 (0) | 2013.05.09 |
[ 뇌를 자극하는 Java 프로그래밍 ] 13 장, Excercise 13-2 (0) | 2013.05.08 |
[ 뇌를 자극하는 Java 프로그래밍 ] 13장, Excercise 13-1 (0) | 2013.05.08 |
[ 뇌를 자극하는 Java 프로그래밍 ] 12장, 이것만은 알고 갑시다. (0) | 2013.05.01 |
[ 뇌를 자극하는 Java 프로그래밍 ] 12장, Excercise 12-1 (0) | 2013.05.01 |
[ 뇌를 자극하는 Java 프로그래밍 ] 11장, 이것만은 알고 갑시다. (0) | 2013.04.27 |
[ 뇌를 자극하는 Java 프로그래밍 ] 11장, Vitamin Quiz, finalize 메서드를 사용했을 때의 장단점 (0) | 2013.04.27 |
[ 뇌를 자극하는 Java 프로그래밍 ] 11장, Excercise 11-1 (0) | 2013.04.27 |