Clase vectorial en Java

La clase Vector implementa una array creciente de objetos. Los vectores pertenecen a las clases heredadas, pero ahora son totalmente compatibles con las colecciones. Se encuentra en el paquete java.util e implementa la interfaz List , por lo que podemos usar todos los métodos de la interfaz List como se muestra a continuación:

Vector Class in Java

  • Vector implementa una array dinámica, lo que significa que puede crecer o reducirse según sea necesario. Al igual que una array, contiene componentes a los que se puede acceder mediante un índice entero.
  • Son muy similares a ArrayList , pero Vector está sincronizado y tiene algunos métodos heredados que el marco de la colección no contiene.
  • También mantiene un orden de inserción como un ArrayList. Aún así, rara vez se usa en un entorno sin subprocesos, ya que está sincronizado y, debido a esto, ofrece un rendimiento deficiente al agregar, buscar, eliminar y actualizar sus elementos.
  • Los iteradores devueltos por la clase Vector son a prueba de fallas. En el caso de una modificación concurrente, falla y lanza la excepción ConcurrentModificationException.

Sintaxis: 

public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable

Aquí, E es el tipo de elemento.

  • Extiende AbstractList e implementa interfaces de lista .
  • Implementa interfaces Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess.
  • La subclase directamente conocida es Stack .

Los puntos importantes con respecto al Incremento de la capacidad del vector son los siguientes:

Si se especifica el incremento, Vector se expandirá de acuerdo con él en cada ciclo de asignación. Aún así, si no se especifica el incremento, la capacidad del vector se duplica en cada ciclo de asignación. Vector define tres miembros de datos protegidos:

  • int capacityIncreament: contiene el valor del incremento.
  • int elementCount: Número de elementos actualmente en el vector almacenados en él.
  • Objeto elementData[]: la array que contiene el vector se almacena en él.

Los errores comunes en la declaración de vectores son los siguientes :

  • Vector lanza una IllegalArgumentException si el InitialSize del vector definido es negativo.
  • Si la colección especificada es nula, lanza NullPointerException . 

Constructores

1. Vector(): crea un vector predeterminado de la capacidad inicial es 10.

Vector<E> v = new Vector<E>();

2. Vector (tamaño int): crea un vector cuya capacidad inicial se especifica por tamaño.

Vector<E> v = new Vector<E>(int size);

3. Vector (tamaño int, incremento int): crea un vector cuya capacidad inicial se especifica por tamaño y el incremento se especifica por incremento. Especifica el número de elementos a asignar cada vez que se redimensiona un vector hacia arriba.

Vector<E> v = new Vector<E>(int size, int incr);

4. Vector(Colección c): Crea un vector que contiene los elementos de la colección c.

vector

java-collection-framework-fundamentals-self-paced

Vector<E> v = new Vector<E>(Collection c);

Métodos en clase vectorial

MÉTODO

DESCRIPCIÓN

añadir (E e) Agrega el elemento especificado al final de este Vector.
agregar (índice int, elemento E) Inserta el elemento especificado en la posición especificada en este Vector.

addAll(Colección<?

se extiende E > c)

Agrega todos los elementos de la colección especificada al final de este vector, en el orden en que los devuelve el iterador de la colección especificada.

addAll(índice int,

Colección<? se extiende E > c)

Inserte todos los elementos de la Colección especificada en este Vector en la posición especificada.
añadirElemento(E obj) Agrega el componente especificado al final de este vector, aumentando su tamaño en uno.
capacidad() Devuelve la capacidad actual de este vector.
clear() Elimina todos los elementos de este Vector.
clon() Devuelve un clon de este vector.
contiene(Objeto o) Devuelve verdadero si este vector contiene el elemento especificado.
contieneTodo(Colección<?> c) Devuelve verdadero si este Vector contiene todos los elementos de la Colección especificada.
copyInto(Object[] anArray) Copia los componentes de este vector en la array especificada.
elementAt(índice int) Devuelve el componente en el índice especificado.
elements() Devuelve una enumeración de los componentes de este vector.
asegurarCapacity(int minCapacity) Aumenta la capacidad de este vector, si es necesario, para garantizar que pueda contener al menos el número de componentes especificado por el argumento de capacidad mínima.
es igual a (Objeto o) Compara el Objeto especificado con este Vector para la igualdad.
primerElemento() Devuelve el primer componente (el elemento en el índice 0) de este vector.

paraCada(Consumidor<?

súper E> acción)

Realiza la acción dada para cada elemento del iterable hasta que se hayan procesado todos los elementos o la acción genere una excepción.
obtener (índice int) Devuelve el elemento en la posición especificada en este Vector.
código hash() Devuelve el valor del código hash para este Vector.
indexOf(Objeto o)

Devuelve el índice de la primera aparición del elemento especificado en este vector,

o -1 si este vector no contiene el elemento.

indexOf(Objeto o, índice int) Devuelve el índice de la primera aparición del elemento especificado en este vector, buscando hacia adelante desde el índice, o devuelve -1 si no se encuentra el elemento.
insertElementAt(E obj, int index) Inserta el objeto especificado como un componente en este vector en el índice especificado.
esta vacio() Comprueba si este vector no tiene componentes.
iterador() Devuelve un iterador sobre los elementos de esta lista en una secuencia adecuada.
últimoElemento() Devuelve el último componente del vector.
lastIndexOf(Objeto o)

Devuelve el índice de la última aparición del elemento especificado en este vector,

o -1 si este vector no contiene el elemento.

lastIndexOf(Objeto o, índice int) Devuelve el índice de la última aparición del elemento especificado en este vector, buscando hacia atrás desde el índice, o devuelve -1 si no se encuentra el elemento.
listaIterador() Devuelve un iterador de lista sobre los elementos de esta lista (en la secuencia adecuada).
listIterator(índice int)

Devuelve un iterador de lista sobre los elementos de esta lista (en la secuencia adecuada),

comenzando en la posición especificada en la lista.

eliminar (índice int) Elimina el elemento en la posición especificada en este Vector.
quitar(Objeto o) Elimina la primera aparición del elemento especificado en este Vector. Si el Vector no contiene el elemento, no se modifica.
removeAll(Colección<?> c) Elimina de este Vector todos sus elementos contenidos en la Colección especificada.
eliminarTodosLosElementos() Elimina todos los componentes de este vector y establece su tamaño en cero.
removeElement(Objeto objeto) Elimina la primera ocurrencia (índice más bajo) del argumento de este vector.
removeElementAt(índice int) Elimina el componente en el índice especificado.
removeIf(Predicado<? super E> filter) Elimina todos los elementos de esta colección que satisfacen el predicado dado.

removeRange(int fromIndex,

int al índice)

Elimina de esta lista todos los elementos cuyo índice se encuentra entre fromIndex, inclusive, y toIndex, exclusivo.
replaceAll (operador UnaryOperator<E>) Reemplaza cada elemento de esta lista con el resultado de aplicar el operador a ese elemento.
retenerTodo(Colección<?> c) Retiene solo los elementos de este Vector contenidos en la Colección especificada.
conjunto (índice int, elemento E) Reemplaza el elemento en la posición especificada en este Vector con el elemento especificado.
setElementAt(E obj, índice int) Establece el componente en el índice especificado de este vector para que sea el objeto especificado.
setSize(int nuevoTamaño) Establece el tamaño de este vector.
Talla() Devuelve el número de componentes de este vector.
sort(Comparador<? super E> c) Ordena esta lista de acuerdo con el orden inducido por el Comparador especificado.
divisor() Crea un Spliterator de enlace tardío y rápido sobre los elementos de esta lista.
subLista(int fromIndex, int toIndex) Devuelve una vista de la parte de esta lista entre fromIndex, inclusive, y toIndex, exclusivo.
aArray() Devuelve una array que contiene todos los elementos de este Vector en el orden correcto.
aArray(T[] a) Devuelve una array que contiene todos los elementos de este Vector en el orden correcto; el tipo de tiempo de ejecución de la array devuelta es el de la array especificada.
Enstringr() Devuelve una representación de string de este vector, que contiene la representación de string de cada elemento.
recortarToSize() Recorta la capacidad de este vector para que tenga el tamaño actual del vector.

Primero discutamos e implementemos cómo crear y usar un vector antes de aterrizar en los métodos de esta clase.

Ejemplo:

Java

// Java Program to Demonstrate Working of Vector
// Via Creating and Using It
  
// Importing required classes
import java.io.*;
import java.util.*;
  
// Main class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
        // Size of the Vector
        int n = 5;
  
        // Declaring the Vector with
        // initial size n
        Vector<Integer> v = new Vector<Integer>(n);
  
        // Appending new elements at
        // the end of the vector
        for (int i = 1; i <= n; i++)
            v.add(i);
  
        // Printing elements
        System.out.println(v);
  
        // Remove element at index 3
        v.remove(3);
  
        // Displaying the vector
        // after deletion
        System.out.println(v);
  
        // iterating over vector elements
        // using for loop
        for (int i = 0; i < v.size(); i++)
  
            // Printing elements one by one
            System.out.print(v.get(i) + " ");
    }
}
Producción

[1, 2, 3, 4, 5]
[1, 2, 3, 5]
1 2 3 5

Nota:

  • Si no se especifica el incremento del vector, su capacidad se duplicará en cada ciclo de incremento.
  • La capacidad de un vector no puede ser inferior al tamaño, puede ser igual a él.

Realización de varias operaciones en la clase Vector en Java

Analicemos varias operaciones en la clase Vector que se enumeran a continuación:

  1. Agregar elementos
  2. Actualización de elementos
  3. Quitar elementos
  4. Iterando sobre elementos

Operación 1: Adición de elementos

Para agregar los elementos al Vector, usamos el método add() . Este método está sobrecargado para realizar múltiples operaciones basadas en diferentes parámetros. Se enumeran a continuación de la siguiente manera:

  • add(Object): Este método se usa para agregar un elemento al final del Vector.
  • add(int index, Object): Este método se usa para agregar un elemento en un índice específico en el Vector.

Ejemplo:

Java

// Java Program to Add Elements in Vector Class
  
// Importing required classes
import java.io.*;
import java.util.*;
  
// Main class
// AddElementsToVector
class GFG {
  
    // Main driver method
    public static void main(String[] arg)
    {
  
        // Case 1
        // Creating a default vector
        Vector v1 = new Vector();
  
        // Adding custom elements
        // using add() method
        v1.add(1);
        v1.add(2);
        v1.add("geeks");
        v1.add("forGeeks");
        v1.add(3);
  
        // Printing the vector elements to the console
        System.out.println("Vector v1 is " + v1);
  
        // Case 2
        // Creating generic vector
        Vector<Integer> v2 = new Vector<Integer>();
  
        // Adding custom elements
        // using add() method
        v2.add(1);
        v2.add(2);
        v2.add(3);
  
        // Printing the vector elements to the console
        System.out.println("Vector v2 is " + v2);
    }
}

 Producción:

Vector v1 is [1, 2, geeks, forGeeks, 3]
Vector v2 is [1, 2, 3]

Operación 2: Actualización de Elementos

Después de agregar los elementos, si deseamos cambiar el elemento, se puede hacer usando el método set() . Dado que un Vector está indexado, el elemento que deseamos cambiar está referenciado por el índice del elemento. Por lo tanto, este método toma un índice y el elemento actualizado para insertarlo en ese índice.

Ejemplo

Java

// Java code to change the
// elements in vector class
  
import java.util.*; 
  
public class UpdatingVector { 
    
    public static void main(String args[]) 
    { 
        // Creating an empty Vector 
        Vector<Integer> vec_tor = new Vector<Integer>(); 
  
        // Use add() method to add elements in the vector 
        vec_tor.add(12); 
        vec_tor.add(23); 
        vec_tor.add(22); 
        vec_tor.add(10); 
        vec_tor.add(20); 
  
        // Displaying the Vector 
        System.out.println("Vector: " + vec_tor); 
  
        // Using set() method to replace 12 with 21 
        System.out.println("The Object that is replaced is: "
                        + vec_tor.set(0, 21)); 
  
        // Using set() method to replace 20 with 50 
        System.out.println("The Object that is replaced is: "
                        + vec_tor.set(4, 50)); 
  
        // Displaying the modified vector 
        System.out.println("The new Vector is:" + vec_tor); 
    } 
} 
Producción

Vector: [12, 23, 22, 10, 20]
The Object that is replaced is: 12
The Object that is replaced is: 20
The new Vector is:[21, 23, 22, 10, 50]

Operación 3: Eliminación de elementos

Para eliminar un elemento de un vector, podemos usar el método remove() . Este método está sobrecargado para realizar múltiples operaciones basadas en diferentes parámetros. Están:

  • remove(Object): Este método se utiliza para eliminar un objeto del Vector. Si hay varios de estos objetos, se elimina la primera aparición del objeto.
  • remove(int index): dado que un vector está indexado, este método toma un valor entero que simplemente elimina el elemento presente en ese índice específico en el vector. Después de eliminar el elemento, todos los elementos se mueven hacia la izquierda para llenar el espacio y se actualizan los índices de los objetos.

Ejemplo

Java

// Java code illustrating the removal
// of elements from vector
  
import java.util.*;
import java.io.*;
  
class RemovingElementsFromVector {
    
    public static void main(String[] arg)
    {
  
        // create default vector of capacity 10
        Vector v = new Vector();
  
          // Add elements using add() method
        v.add(1);
        v.add(2);
        v.add("Geeks");
        v.add("forGeeks");
        v.add(4);
  
        // removing first occurrence element at 1
        v.remove(1);
  
        // checking vector
        System.out.println("after removal: " + v);
    }
}

 Producción:

after removal: [1, Geeks, forGeeks, 4]

Operación 4: iterando el vector

Hay varias formas de iterar a través del Vector. Las formas más famosas son usar el bucle for básico en combinación con un método get() para obtener el elemento en un índice específico y el bucle for avanzado .

Ejemplo

Java

// Java program to iterate the elements
// in a Vector
  
import java.util.*;
  
public class IteratingVector {
  
    public static void main(String args[])
    {
          // create an instance of vector
        Vector<String> v = new Vector<>();
  
          // Add elements using add() method
        v.add("Geeks");
        v.add("Geeks");
        v.add(1, "For");
  
        // Using the Get method and the
        // for loop
        for (int i = 0; i < v.size(); i++) {
  
            System.out.print(v.get(i) + " ");
        }
  
        System.out.println();
  
        // Using the for each loop
        for (String str : v)
            System.out.print(str + " ");
    }
}
Producción

Geeks For Geeks 
Geeks For Geeks

Nota: Lea la clase ArrayList vs Vector en Java para comprenderlo mejor.

Este artículo es una contribución de Abhishek Verma . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. 

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *