ArrayList 및 LinkedList에 대해 널리 인정되지 않는 인수는 디버깅하는 동안 LinkedLists가 불편 하다는 것입니다 입니다. 유지 보수 개발자가 프로그램을 이해하는 데 소요되는 시간 (예 : 버그 찾기, 증가) 및 IMHO는 때때로 엔터프라이즈 응용 프로그램에서 메모리 향상의 성능 향상 또는 바이트 수의 나노초를 정당화하지 않습니다. 때로는 (물론 응용 프로그램 유형에 따라 다름) 몇 바이트를 낭비하는 것이 좋지만 유지 관리가 용이하거나 이해하기 쉬운 응용 프로그램이 있습니다.
예를 들어, Java 환경에서 Eclipse 디버거를 사용하면 ArrayList를 디버깅하면 매우 이해하기 쉬운 구조가 나타납니다.
arrayList ArrayList<String>
elementData Object[]
[0] Object "Foo"
[1] Object "Foo"
[2] Object "Foo"
[3] Object "Foo"
[4] Object "Foo"
...
반면에, LinkedList의 내용을보고 특정 객체를 찾는 것은 LinkedList 내부를 걸러내는 데 필요한인지 오버 헤드는 말할 것도없고 Expand-The-Tree 클릭 악몽이됩니다.
linkedList LinkedList<String>
header LinkedList$Entry<E>
element E
next LinkedList$Entry<E>
element E "Foo"
next LinkedList$Entry<E>
element E "Foo"
next LinkedList$Entry<E>
element E "Foo"
next LinkedList$Entry<E>
previous LinkedList$Entry<E>
...
previous LinkedList$Entry<E>
previous LinkedList$Entry<E>
previous LinkedList$Entry<E>