개체의 java.util.Collection
을 허용하는 다른 API에서 메서드를 호출하고 있습니다. 메서드를 살펴본 결과 컬렉션의 모든 내용을 즉시 ArrayList
으로 복사 한 다음 작업을 수행합니다.가장 낮은 오버 헤드를 가진 java.util.Collection?
궁금한 점이 있습니다 :이 메서드에 대한 매개 변수를 빠르게 어셈블하는 데 사용할 수있는 가장 낮은 오버 헤드 Java Collection은 무엇입니까? 복사하기 요소가 있지만,이
new ArrayList<Something>(inputCollection);
같은 ArrayList
-copy을 만드는 경우 방법에 따라 달라거나
someCopy.addAll(inputCollection);
않는 경우 다음 그것은 inputCollection.toArray()
거치게됩니다
+1 좋은 답변입니다. .toArray()가 사용되지 않더라도, 다른 옵션은 정렬의 반복자이며 배열을 반복합니다 (ArrayList의 기본 저장소)는 다른 것보다 빠릅니다. 그래서 ArrayList는 어느 경우 에나 승자입니다. ArrayList를 더 잘 사용하기 위해 – rfeak
을 생성합니다. '새로운 ArrayList (numItems)'. –
jtahlborn
@jtahlborn : 어떻게 도움이되는지 알 수 없습니다. 생성자 접근법을 사용하는 경우 이미 처리되었으므로'addAll' 메소드를 사용하는 경우에는 요소를 추가하기 전에 내부적으로 용량을 호출해야합니다. – aioobe