programing

성능면에서 Array 대 ArrayList

nasanasas 2020. 12. 27. 11:05
반응형

성능면에서 Array 대 ArrayList


이 질문에 이미 답변이 있습니다.

Object 유형의 Array와 Object 유형의 ArrayList 간의 성능이 더 좋은 것은 무엇입니까?

Animal객체 배열 Animal animal[]배열 목록이 있다고 가정합니다 .ArrayList list<Animal>

지금 나는하고 animal[10]있으며 list.get(10)어느 것이 더 빨라야하며 왜?


나중에 내부적으로 동일한 호출을 수행하지만 함수 호출과 추가 검사에 대한 오버 헤드를 추가하므로 array [10]이 array.get (10)보다 빠릅니다.

그러나 최신 JIT는 성능이 매우 중요한 애플리케이션이 있고 이것이 병목 현상으로 측정되지 않는 한 이에 대해 거의 걱정할 필요가 없을 정도로이를 최적화합니다.


에서 여기 :

ArrayList는 Java의 Array에 의해 내부적으로 지원되며 ArrayList의 크기 조정 작업은 새 Array를 만들고 이전 배열에서 새 배열로 콘텐츠를 복사하는 것과 관련되어 성능이 저하됩니다.


성능면에서 Array와 ArrayList는 index를 알고 있으면 요소를 추가하거나 가져 오는 일정한 시간 측면에서 유사한 성능을 제공합니다 . ArrayList의 자동 크기 조정으로 인해 삽입 속도가 약간 느려질 수 있지만 Array와 ArrayList는 모두 Java의 핵심 개념이며 모든 심각한 Java 프로그래머는 Array와 ArrayList 또는보다 일반적인 Array와 List의 차이점에 대해 잘 알고 있어야합니다.


Array 또는 ArrayList를 사용하기로 결정할 때 첫 번째 본능은 성능이 다르지만 성능에 대해 걱정할 필요가 없습니다. 첫 번째 관심사는 어레이의 크기를 미리 알고 있는지 여부입니다. 그렇지 않으면 당연히 기능만을 위해 배열 목록을 사용하게됩니다.


나는 누군가가 최근에 삭제 한 포스트에 동의한다. 성능의 차이가 너무 작아서 거의 예외를 제외하고는 (그는 절대로 말하지 않는다는 이유로) 당신은 그것을 기반으로 디자인 결정을 내리지 말아야한다.

요소가 개체 인 예에서 성능 차이는 최소화되어야합니다.

많은 수의 기본 요소를 다루는 경우 배열은 메모리와 시간 모두에서 훨씬 더 나은 성능을 제공합니다.


어레이는 성능면에서 더 좋습니다. ArrayList는 성능을 희생하면서 "제거"와 같은 추가 기능을 제공합니다.

참조 URL : https://stackoverflow.com/questions/19389609/array-vs-arraylist-in-performance

반응형