자바에서 배열보다 벡터를 사용하는 것이 더 좋은가? 그리고 왜?자바에서 배열보다 벡터를 사용하는 것이 더 좋은가?
답변
Vector
: 인터페이스가 아닌 클래스이기 때문에 API가 요구하지 않는 한 절대로 사용하지 마십시오.
List
: 기본 배열과 같은 컬렉션이어야합니다. 그것은 인터페이스이므로 아무것도 필요한 경우 List
이 될 수 있습니다.
Vector
스레드 (그리고이 밖에 예 ArrayList
, LinkedList
, CopyOnWriteArrayList
, ImmutableList
다양한 기능 세트 List
구현 많은 임)하지만, 그렇게 Collections.synchronizedList()
래퍼이다.
배열 : 드물지만 API에서 필요한 경우. 배열의 다른 주요 이점은 고정 길이 배열의 프리미티브가 필요할 때 Integer
개체에 박스형으로 입력해야하는 List<Integer>
에 비해 필요한 메모리 공간이 상당히 컴팩트하다는 점입니다.
Vector
(또는 List
) 얼마나 많은 요소가 삽입 될지 미리 알지 못할 때.
array
벡터의 전체 수명에서 요소의 최대 개수를 절대적으로 알고있을 때.
List
또는 Vector
(해당 컬렉션의 경우)을 사용할 때 높은 성능 저하가 없으므로 항상 사용하도록 선택했습니다. 그들의 융통성은 고려되지 않는 데 너무 중요합니다.
요즘 나는 절대적으로해야 할 때 arrays
만을 사용합니다. 예 : API가 필요한 API를 사용할 때.
우선 ArrayList는 Vector보다 빠른 구현이지만 (thread safe는 아님).
미리 길이를 알고 많이 바뀌지 않으면 배열을 사용하면 편리합니다.
메서드를 선언 할 때는 List
을 사용하십시오.
Vector
은 JDK의 초기 부분이며 Collections
으로 작업 할 수 있도록 개조되었습니다.
성능에 민감한 알고리즘이있는 경우 개인 배열 구성원이 유용 할 수 있습니다. 내용을 반환하거나 메서드에 전달해야하는 경우 일반적으로 Arrays.asList(thePrivateArray)
과 같이 간단하게 개체를 구성하는 것이 가장 좋습니다. 스레드로부터 안전한 목록의 경우 : Collections.synchronizedList(Arrays.asList(thePrivateArray))
. 배열 내용의 수정을 막기 위해 일반적으로 Collections.unmodifiableList(Arrays.asList(thePrivateArray))
을 사용합니다.
- 1. 큰 그림을 홈페이지로 사용하는 것이 왜 안 좋은가?
- 2. 위험 평가를 위해 3 점 기법을 사용하는 것이 얼마나 좋은가
- 3. 암호 텍스트를 설정하는 것이 얼마나 안 좋은가?
- 4. 느린 성능의 WPF 애니메이션. .png보다 모양을 사용하는 것이 더 낫습니다.
- 5. @ 전에 문자열을 사용하는 것이 더 나은가요?
- 6. List 또는 Collection을 사용하는 것이 더 좋습니까?
- 7. 이 경우 CFMutableArrayRef를 사용하는 것이 더 지능적입니까?
- 8. 항상 ASP 제어를 사용하는 것이 더 좋습니까?
- 9. Windows Forms에서 WPF를 사용하는 것이 더 좋습니까?
- 10. izip 대신 zip을 사용하는 것이 더 좋은가요?
- 11. 언제 C++ 템플릿을 사용하는 것이 더 낫습니까?
- 12. 정규식을 사용하는 것이 더 나은 사례는 무엇입니까?
- 13. 어느 것이 목록 항목에 사용하는 것이 더 낫습니까?
- 14. 자바에서 객체 데이터 스트림이나 원시 데이터 스트림을 사용하는 것이 더 효율적입니까?
- 15. 실제로 어떤 주장이나 NSAssert가 좋은가?
- 16. 언어를 사용하는 대신 시스템의 기능을 사용하는 것이 더 좋을까요?
- 17. 왜 포인터가 사용중인 배열보다 효율적입니까
- 18. 자바에서 IM을 위해 mjsip 스택을 사용하는 것이 가능합니다.
- 19. Hibernate에서 하나의 객체 또는리스트 <T>을 반환하는 것이 더 좋은가?
- 20. .dat 파일에 구조체가있는 벡터를 serialize하는 것이 잘못되었습니다.
- 21. 중복 된 JavaScript 이름. 그것들을 갖는 것이 안 좋은가?
- 22. 자바에서 JSpeex를 사용하는 방법
- 23. 자바에서 패치를 사용하는 방법
- 24. 이러한 상황에서 어떤 메모리 관리 기법이 더 좋은가?
- 25. 어느 쪽이 더 성능이 좋은가 : HTML 또는 JSON으로서의 XmlHttpRequest 응답?
- 26. Restful 웹 서비스가 SOAP 기반 웹 서비스보다 어떻게 더 좋은가
- 27. 데이터베이스를 사용하는 것이 좋은 생각은 언제입니까
- 28. 어느 것이 더 빠릅니까?
- 29. 어느 것이 더 빠릅니까?
- 30. 어느 것이 더 일반적입니까,지도 또는 벡터에서 C + +?
가능한 복제본 [Java의 배열을 사용하는 경우] (http://stackoverflow.com/questions/1589813/when-to-use-a-list-over-an-array-in- 자바) – McDowell