Java Vector indexOf() Método
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
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
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
Manejo de valores null:
VectorPuede contener elementos null, se puede usarindexOf(null)para encontrar la posición de un elemento null.Consideraciones de rendimientoPara vectores grandes, el uso frecuente
indexOf()puede causar problemas de rendimiento, ya que requiere recorrer todo el vector.Seguridad para hilos:
Vectores seguro para hilos,indexOf()el método se puede usar de forma segura en entornos multihilo.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