Java Vector indexOf() Método

Java Vector Java Vector


indexOf(Object elem)es, en Java,Vectorun método común proporcionado por la clase, utilizado para encontrar la posición de la primera aparición del elemento especificado en el vector. Si el vector no contiene ese elemento, devuelve -1.

Sintaxis del método

public int indexOf(Object elem)

Parámetros del método

Nombre del parámetro Tipo de parámetro Descripción
elem Object El elemento que se necesita buscar en el vector

Valor de retorno

Tipo de valor de retorno Descripción
int Devuelve el índice de la primera aparición del elemento especificado; si el vector no contiene el elemento, devuelve -1.

Características del método

Búsqueda lineal

indexOf()El método comienza desde el primer elemento del vector y realiza una búsqueda lineal secuencialmente hasta encontrar un elemento coincidente o recorrer todo el vector.

Comparación de elementos

Este método utilizaequals()el método para determinar si los elementos son iguales, por lo que para objetos personalizados es necesario sobrescribir correctamenteequals()el método para obtener el resultado esperado.

Complejidad temporal

Dado que es una búsqueda lineal, la complejidad temporal de este método es O(n), donde n es el tamaño del vector.


Ejemplos de uso

Uso básico

Ejemplo

import java.util.Vector;

public class VectorIndexOfExample {
    public static void main(String[] args) {
        // Crear un Vector
        Vector<String> fruits = new Vector<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Orange");
        fruits.add("Banana");  // Elemento repetido
       
        // Buscar la posición del elemento
        int index1 = fruits.indexOf("Banana");
        System.out.println("Posición de la primera aparición de Banana: " + index1);  // Salida 1
       
        int index2 = fruits.indexOf("Grape");
        System.out.println("Posición de Grape: " + index2);  // Salida -1
    }
}

Búsqueda de objetos personalizados

Ejemplo

import java.util.Vector;

class Person {
    private String name;
    private int age;
   
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
   
    // Sobrescribir el método equals
    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null || getClass() != obj.getClass()) return false;
        Person person = (Person) obj;
        return age == person.age && name.equals(person.name);
    }
}

public class CustomObjectExample {
    public static void main(String[] args) {
        Vector<Person> people = new Vector<>();
        people.add(new Person("Alice", 25));
        people.add(new Person("Bob", 30));
       
        // Buscar el objeto Person
        Person target = new Person("Bob", 30);
        int index = people.indexOf(target);
        System.out.println("Posición de Bob: " + index);  // Salida 1
    }
}

Notas

  1. Manejo de valores null:VectorPuede contener elementos null, se puede usarindexOf(null)para encontrar la posición de un elemento null.

  2. Consideraciones de rendimientoPara vectores grandes, el uso frecuenteindexOf()puede causar problemas de rendimiento, ya que requiere recorrer todo el vector.

  3. Seguridad para hilos:Vectores seguro para hilos,indexOf()el método se puede usar de forma segura en entornos multihilo.

  4. Diferencia con ArrayList:ArrayListtambién tiene unindexOf()método similar, peroVectorel método de Vector es sincronizado, mientras queArrayListel de ArrayList no lo es.


Métodos relacionados

Método Descripción
lastIndexOf(Object elem) Devuelve la posición de la última aparición del elemento especificado
contains(Object elem) Comprueba si el vector contiene el elemento especificado
get(int index) Obtiene el elemento en la posición especificada

Resumen

Vector.indexOf(Object elem)Es un método simple pero práctico, utilizado para encontrar la posición de un elemento en el vector. Comprender su funcionamiento y características, para un uso eficazVectorde la colección, es muy importante. Recuerde manejar correctamente elequals()método de los objetos personalizados, y preste atención al impacto en el rendimiento con grandes volúmenes de datos.

Java Vector Java Vector

Otras extensiones