¿Cuándo es mejor usar un vector que una matriz y viceversa en Java? ¿y por qué?¿Cuándo es mejor usar un vector que una matriz y viceversa en Java?
Respuesta
Vector
: nunca, a menos que una API lo requiera, porque es una clase, no una interfaz.
List
: esta debería ser su colección predeterminada similar a una matriz. Es una interfaz así que cualquier cosa puede ser List
si es necesario. (Y hay un montón de List
implementaciones por ahí por ejemplo ArrayList
, LinkedList
, CopyOnWriteArrayList
, ImmutableList
, por diversos conjuntos de características)
Vector
es multi-hilo, pero también lo es la envoltura Collections.synchronizedList()
.
matriz: raramente, si es requerido por una API. La otra gran ventaja de las matrices es que cuando se necesita una matriz de primitivas de longitud fija, el espacio de memoria requerido es bastante compacto, en comparación con un List<Integer>
donde los enteros deben encasillarse en objetos Integer
.
A Vector
(o List
) cuando no sabe de antemano cuántos elementos se van a insertar.
cuando sepa cuál es el número máximo de elementos en la vida útil de ese vector.
Dado que no existen penalizaciones de alto rendimiento cuando se usan List
o Vector
(cualquier colección para ese caso), siempre preferiría usarlas. Su flexibilidad es demasiado importante para no ser considerado.
Actualmente solo uso arrays
cuando lo necesito. Ejemplo: cuando se usa una API que los requiere.
En primer lugar, ArrayList es una implementación más rápida que Vector (aunque no es seguro para subprocesos).
Las matrices son útiles cuando conoce la longitud de antemano y no cambiará demasiado (o no cambiará nada).
Al declarar un método, use List
.
No utilice Vector
, es una parte temprana del JDK y fue adaptada para trabajar con Collections
.
Si hay un algoritmo muy sensible al rendimiento, un miembro de matriz privada puede ser útil. Si hay una necesidad de devolver sus contenidos o pasarlos a un método, generalmente es mejor construir un objeto a su alrededor, tal vez tan simple como Arrays.asList(thePrivateArray)
. Para una lista de seguridad de subprocesos: Collections.synchronizedList(Arrays.asList(thePrivateArray))
. Para evitar la modificación de los contenidos de la matriz, normalmente utilizo Collections.unmodifiableList(Arrays.asList(thePrivateArray))
.
- 1. Cuándo usar `zipmap` y cuándo` map vector`?
- 2. ¿Cuándo es mejor usar la pila en lugar del montón y viceversa?
- 3. ¿Cuándo usarías una matriz en lugar de un vector/cadena?
- 4. ¿Cuándo debería usar un TreeMap sobre PriorityQueue y viceversa?
- 5. ¿Cuándo debería usar NSURL en lugar de NSString y viceversa?
- 6. matriz de bytes a matriz corta y viceversa en java
- 7. ¿Cuándo es el método de fábrica mejor que simple de fábrica y viceversa?
- 8. Vector vs. ArrayList que es mejor?
- 9. ¿Cuándo es preferible una ArrayList a una matriz en Java?
- 10. Cuándo usar HashMap sobre LinkedList o ArrayList y viceversa
- 11. ¿Cuándo debería usar stdClass y cuándo debería usar una matriz en php oo?
- 12. CGRect a un NSValue en una matriz y viceversa
- 13. Cuándo usar vectores y cuándo usar matrices en C++?
- 14. Cuándo usar un módulo y cuándo usar una clase
- 15. Cuándo normalizar un vector?
- 16. ¿Cuándo usar un objeto o una matriz en javascript?
- 17. ¿Cuándo es apropiado usar una asociación bidireccional y cuándo no?
- 18. Convertir cadena JRuby a matriz de bytes Java, y viceversa
- 19. Java: ¿cuándo usar Iterators?
- 20. ¿Cuándo debería usar un vector de objetos en lugar de un vector de punteros?
- 21. Cómo usar y cuándo es bueno usar memmove en C?
- 22. Colecciones Java: ¿qué colección usar y cuándo?
- 23. Cuándo usar dup, y cuándo usar clon en Ruby?
- 24. Cuándo usar Propiedades y cuándo Mapa en Java?
- 25. ¿Cuándo usar == y cuándo usarlo?
- 26. Cuándo usar sincronizado en Java
- 27. ¿Multiplicación por elementos de una matriz y un vector?
- 28. ¿Debo usar un data.frame o una matriz?
- 29. convirtiendo la imagen en matriz y viceversa?
- 30. ¿Cuándo es "O" mejor que "OrElse"?
posible duplicado de [¿Cuándo utilizar una lista sobre una matriz en Java?] (Http://stackoverflow.com/questions/1589813/when-to-use-a-list-over-an-array-in- Java) – McDowell