Vector y enumeración en Java con programas de ejemplo
IntroducciónTodos hemos utilizado estructuras de datos Array en programación. En este artículo, vamos a aprender acerca de su competidor – Vector. Veamos cómo funciona un vector. Digamos que tenemos que construir una estructura de datos en forma de árbol y almacenar el valor de los nodos, y como no sabemos el número de nodos de antemano, necesitamos una estructura de datos apropiada que funcione para nosotros. Podríamos usar Array, pero lo inicializamos con un tamaño fijo que no se puede cambiar en el futuro.El problema surge cuando el Array se llena, y queremos insertar más nodos en el árbol. Como los Arrays no se pueden expandir, tenemos que buscar otra estructura de datos cuyo tamaño se pueda cambiar dinámicamente y los Vectores vienen a nuestro rescate.
También hay tres miembros de datos protegidos (campos protegidos son los miembros de datos que se puede acceder ya sea dentro de la clase o de la clase derivada) en la clase Vector.While inicializar vectores en Java, hay que tener en cuenta algunas excepciones que pueden ocurrir:
Incremento de la Capacidad del VectorPor defecto, el vector incrementa su capacidad en el doble. Sin embargo, si se especifica un incremento en su constructor, el Vector crecerá de acuerdo con él en cada ciclo de asignación.Veamos el siguiente ejemplo:En el siguiente código, podemos ver cómo se comporta la función capacity():import java.util.Vector;
¿Puede un vector tener duplicados en Java?
Un Vector contiene elementos en un orden definido y puede contener duplicados (es una lista). Un Conjunto no tiene un orden inherente y no puede contener duplicados (es una bolsa, en la que los elementos no están ordenados).
¿Qué es el tipo de datos vectorial en Java?
La clase Vector implementa una matriz de objetos que puede crecer. Al igual que una matriz, contiene componentes a los que se puede acceder utilizando un índice entero. Sin embargo, el tamaño de un vector puede aumentar o disminuir según sea necesario para dar cabida a la adición y eliminación de elementos después de que el vector ha sido creado.
¿Está anticuado el vector en Java?
Si se requiere una implementación segura de la interfaz List, podemos utilizar la clase CopyOnWriteArrayList, que es una variante segura de ArrayList o sincronizar ArrayList externamente utilizando el método synchronizedList() de la clase Collections. Eso es todo acerca de por qué la clase Vector es obsoleta en Java.
¿Cómo añadir elementos en el Vector? | Java Collection Framework
Un Vector es una clase. Un Set es una interfaz. Yo usaría un ArrayList en lugar de un Vector de todos modos, si no estás haciendo algo que necesita ser threadsafe. O un array estándar si no se va a redimensionar.
Prefiero usar una lista en lugar de un vector. El vector es seguro, pero conlleva cierta sobrecarga. La lista no es segura para hilos, pero siempre puedes sincronizar cada llamada para añadir, eliminar y obtener elementos.
El conjunto tendrá un comportamiento extraño, como dijo casablanca, si usted está tratando de obtener sus elementos en un orden determinado. Además, el set actuará como tal, y nunca te permitirá repetir elementos en caso de que lo necesites.
Creo que el Set se aplica más para implementar un Autómata Finito. Por ejemplo, deberías usar el Conjunto para garantizar que no hay elementos duplicados. Por la definición de Autómata tienes un conjunto de estados, un conjunto de símbolos y un conjunto de estados aceptados, por lo que un Conjunto podría encajar en tus requisitos.
¿Cómo añadir un objeto definido por el usuario en el vector?
En el último artículo, hemos aprendido cómo convertir un LinkedList a un array en Java, y en el tutorial de hoy, usted aprenderá cómo convertir un Vector a un array en Java. Hay una similitud entre Vector y LinkedList, ambos implementan la interfaz List. A pesar de que Vector es una clase heredada y existe en Java desde JDK 1.1 mucho antes de que se introdujera el marco de Java Collection, fue posteriormente adaptado para implementar la interfaz List. Puede utilizar el mismo método toArray() para convertir un Vector en un array en Java. De forma similar a LinkedList, puedes convertir el Vector de cualquier objeto en un array del objeto correspondiente, la única restricción es que no puedes convertir un vector de Integers en un array de ints o un Vector de objetos Float en un array de floats, lo que también se aplica a nuestra solución de listas enlazadas.
Para un desarrollador Java, un buen conocimiento de las diferentes clases Collection es muy importante porque eso le permitirá elegir la clase Collection adecuada para el trabajo. Por ejemplo, si sabes que Vector implementa la interfaz List, entonces sabes que es una colección ordenada y cuando conviertes Vector en array, el orden de los elementos seguirá siendo el mismo, es decir, el orden en el que se insertan.
¿Cómo comprobar si un objeto existe o no en el vector?
protected T[]elementData Matriz interna que contiene los miembros de un Vector. Campos heredados de la clase java.util.AbstractList<E>modCountConstructor SummaryVector() Construye un vector vacío con un tamaño inicial de 10, y
Parámetros:c – colección de elementos a añadir al nuevo vectorTrows:NullPointerException – si c es nuloSince:1.2Vectorpublic Vector(int initialCapacity) Construye un Vector con la capacidad inicial especificada, y una capacidad
Especificado por:clear en la interfaz List<E>clear en la interfaz Collection<E>Anula:clear en la interfaz AbstractList<E>clonepublic Object clone() Crea un nuevo Vector con el mismo contenido que éste. El clon es
Especificado por:contains en la interfaz List<E>contains en la interfaz Collection<E>Overrides:contains en la interfaz AbstractCollection<E>Parámetros:elem – el elemento a comprobarDevuelve:true si el objeto está contenido en este Vector, false en caso contrarioecontainsAllpublic boolean containsAll(Collection c) Devuelve true si este Vector contiene todos los elementos de c.