리스트와 배열의 차이
리스트에서 데이터를 삭제하면, 해당 데이터가 사라지면서 해당 데이터 뒤에 있던 데이터가 한칸 앞으로 전진하게 된다.
하지만 배열에서 요쇼를 삭제하면, 그냥 그 자리는 비어 있게 된다. (특정한 처리를 해주지 않는이상)
그러므로, 리스트는 데이터가 있는지 없는지를 체크하지 않아도 되는 장점이 있다.
하지만, 배열은 어딘가가 비어있을 수도 있으므로, 데이터가 있는지 없는지 확인해야 한다. 그만큼 리스트보다 더 많은 공간을 차지한다. 하지만 이게 오히려 장점이 될 수 있다. 요소의 자리 (즉 인덱스)값이 바뀌지 않으므로, 배열은 특정 값의 키 즉 인덱스를 유지할 수 있다.
하지만 리스트는 앞의 데이터가 삭제되면, 한칸씩 앞으로 자동으로 당기므로, 인덱스 값이 변한다. 그러므로, 배열에서만큼의 인덱스중요도가 있진 않다.
그렇기 때문에 배열에서의 인덱스 중요도는 유일무이하다...
java의 list는 두가지를 지원한다.
추가/삭제 인덱스조회
ArrayList 느리다. 빠르다.
LinkedList 빠르다. 느리다.
반응형
'Algorithm > 알고리즘 이론' 카테고리의 다른 글
알고리즘 설명해주는 블로그 (0) | 2020.12.24 |
---|---|
DoublyLinkedList 코드 (0) | 2020.12.17 |
LinkedList 코드 (0) | 2020.12.17 |
ArrayList 코드 (0) | 2020.12.15 |
힙정렬 코드 (0) | 2020.12.14 |