>Java >java지도 시간 >Java의 ArrayList와 LinkedList를 비교하는 그래픽 세부 정보

Java의 ArrayList와 LinkedList를 비교하는 그래픽 세부 정보

Y2J
Y2J원래의
2017-05-03 14:47:031734검색

이 기사에서는 주로 Java의 ArrayList와 LinkedList를 예제를 통해 비교합니다. 필요한 친구가 참조할 수 있습니다.

ArrayList와 LinkedList는 모두 Collection 인터페이스의 일반적인 구현 방법이며 서로 다른 저장 전략을 사용합니다. 다양한 상황의 요구에 적응합니다.

구현 방법

ArrayList는 내부적으로 컬렉션을 사용하여 데이터를 저장합니다.

유의할 점 용량이 임계값을 초과하는 경우 처리 논리에 대한 것입니다. 배열의 기본 용량은 10이고, 최대 용량은 Integer.Max_Value입니다. 최대 용량을 초과하면 메모리 오버플로 예외가 발생합니다. 🎜>

확장 메커니즘은 아래와 같습니다

확장 용량은 원래 용량의 1.5배

LinkedList 구현

내부적으로 이중 연결 리스트 노드 내부 클래스를 사용하여 이중 연결 리스트를 사용하므로 LinkedList도 스택 및 큐로 사용할 수 있지만 Java는 상대적으로 효율성이 낮습니다. ArrayDeqeue의 효율적인 구현.

성능 비교

꼬리 삽입 효율성 측면에서는 둘 사이에 큰 차이는 없지만 LinkedList는 유지 관리가 필요함 이중 연결 목록 관계, 모든 저장 효율성은 ArrayList보다 약간 떨어집니다

ArrayList의 시간은 용량을 한 번에 초기화하는 경우 주로 용량 확장 및 데이터 마이그레이션에 소비됩니다. , 괜찮아야 합니다 개선의 여지가 있습니다 다시 한번 비교해 보겠습니다. 무서운 50%의 개선 여지가 있습니다

링크드의 장점은 헤드 삽입의 효율성입니다. . 헤드 요소만 수정하면 됩니다. 그러나 배열은 여전히 ​​후속 데이터를 이동해야 하며 효율성은 LinkedList

보다 훨씬 낮습니다. 그리고 set 연산을 수행하면 연결된 리스트 내에서 이진 검색이 수행되므로 배열은 첨자를 통해 요소에 직접 액세스할 수 있으므로 위의 내용을 토대로 LinkedList

보다 효율성이 높습니다. 비교하면 기본적으로

이 방금 저장되었는지 확인할 수 있습니다. 단순한 데이터 반복의 경우 일반적으로 컬렉션을 사용하는 것이 가장 효율적입니다.
요소를 자주 수정하는 경우 LinkedList를 사용합니다.

을 사용해야 합니다.

위 내용은 Java의 ArrayList와 LinkedList를 비교하는 그래픽 세부 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.