Método Java Vector capacity()

Java Vector Java Vector

capacity()El método es, en Java,Vectorun método integrado proporcionado por la clase, utilizado para devolver la capacidad (capacity) del vector actual. La capacidad se refiere al número de elementos que el vector puede almacenar sin reasignar el espacio de almacenamiento interno.

Sintaxis

public int capacity()

Valor de retorno del método

Este método devuelve unintvalor de tipo, que representa laVectorcapacidad actual del objeto.


Uso básico

Código de ejemplo

Ejemplo

import java.util.Vector;

public class VectorCapacityExample {
    public static void main(String[] args) {
        // Crear un Vector con capacidad inicial de 10
        Vector<String> fruits = new Vector<>(10);
       
        // Agregar algunos elementos
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Orange");
       
        // Obtener la capacidad actual
        int currentCapacity = fruits.capacity();
        System.out.println("Capacidad actual del Vector: " + currentCapacity);
    }
}

Resultado de salida

当前Vector容量: 10

Comprensión profunda

Capacidad vs tamaño de Vector

  • Capacidad (Capacity): el tamaño del array interno del Vector, es decir, el número total de elementos que puede almacenar
  • Tamaño (Size): el número de elementos que el Vector almacena actualmente

Ejemplo

Vector<Integer> numbers = new Vector<>(5); // Capacidad inicial de 5
numbers.add(1);
numbers.add(2);

System.out.println("Capacidad: " + numbers.capacity()); // Salida 5
System.out.println("Tamaño: " + numbers.size());     // Salida 2

Mecanismo de crecimiento automático de capacidad

Cuando el tamaño del Vector supera la capacidad actual, el Vector aumenta automáticamente su capacidad. De forma predeterminada, la capacidad se duplica, pero este comportamiento se puede cambiar especificando un incremento de capacidad.

Ejemplo

// Crear un Vector con capacidad inicial de 3 e incremento de 2
Vector<Integer> vec = new Vector<>(3, 2);

System.out.println("Capacidad inicial: " + vec.capacity()); // 3

vec.add(1);
vec.add(2);
vec.add(3);
vec.add(4); // Superar la capacidad inicial, crece automáticamente

System.out.println("Capacidad después del crecimiento: " + vec.capacity()); // 5 (3 + 2)

Mejores prácticas

  1. Establecer adecuadamente la capacidad inicial: si se puede estimar el número de elementos, establecer una capacidad inicial adecuada puede reducir la sobrecarga de rendimiento causada por la expansión automática
  2. Evitar expansiones frecuentes: las expansiones frecuentes afectan el rendimiento, especialmente al procesar grandes cantidades de datos
  3. **Usar trimToSize() oportunamente**: si estás seguro de que no se agregarán más elementos, puedes usartrimToSize()para ajustar la capacidad al tamaño actual, ahorrando memoria.

Ejemplo

Vector<String> names = new Vector<>(100);
// Agregar elementos...
names.trimToSize(); // Ajustar la capacidad al tamaño actual

Preguntas frecuentes

P1: ¿Cuál es la diferencia entre capacity() y size()?

  • capacity()Devuelve el número total de elementos que el Vector puede almacenar actualmente.
  • size()Devuelve el número de elementos que el Vector almacena realmente en la actualidad.

P2: ¿Por qué la capacidad de mi Vector es mucho mayor que la cantidad real de elementos?

Esto se debe al mecanismo de expansión automática del Vector. Cuando el Vector necesita expandirse, agrega suficiente espacio para evitar expansiones frecuentes, lo que puede hacer que la capacidad sea mucho mayor que la cantidad de elementos almacenados actualmente.

P3: ¿Cómo reducir la capacidad de un Vector?

Se puede usartrimToSize()el método para ajustar la capacidad del Vector al tamaño actual:

vector.trimToSize();

Resumen

capacity()El método es uno de los métodos más importantes para comprender y usar Java Vector. Gestionando razonablemente la capacidad del Vector, se puede mejorar el rendimiento del programa y optimizar el uso de la memoria. Recuerda que la capacidad es el tamaño del espacio de almacenamiento interno del Vector, mientras que el tamaño es la cantidad de elementos realmente almacenados.

Java Vector Java Vector

Otras extensiones