Java Vector indexOf()-Methode
indexOf(Object elem)ist in JavaVectoreine gängige, von der Klasse bereitgestellte Methode, mit der die Position des ersten Vorkommens des angegebenen Elements im Vektor gefunden wird. Wenn der Vektor das Element nicht enthält, gibt sie -1 zurück.
Methodensyntax
public int indexOf(Object elem)
Methodenparameter
| Parametername | Parametertyp | Beschreibung |
|---|---|---|
elem |
Objekt | Das im Vektor zu suchende Element |
Rückgabewert
| Rückgabetyp | Beschreibung |
|---|---|
| int | Gibt die Indexposition des ersten Vorkommens des angegebenen Elements zurück; gibt -1 zurück, wenn der Vektor das Element nicht enthält |
Methodenmerkmale
Lineare Suche
indexOf()Die Methode beginnt beim ersten Element des Vektors und führt eine lineare Suche Element für Element durch, bis sie ein übereinstimmendes Element findet oder den gesamten Vektor durchlaufen hat.
Elementvergleich
Diese Methode verwendet dieequals()Methode, um festzustellen, ob Elemente gleich sind. Daher müssen Sie für benutzerdefinierte Objekte dieequals()Methode korrekt überschreiben, um die erwarteten Ergebnisse zu erhalten.
Zeitkomplexität
Da es sich um eine lineare Suche handelt, ist die Zeitkomplexität dieser Methode O(n), wobei n die Größe des Vektors ist.
Anwendungsbeispiele
Grundlegende Verwendung
Beispiel
public class VectorIndexOfExample {
public static void main(String[] args) {
// Vector erstellen
Vector<String> fruits = new Vector<>();
fruits.add("Apfel");
fruits.add("Banane");
fruits.add("Orange");
fruits.add("Banana"); // Doppelte Elemente
// Elementposition finden
int index1 = fruits.indexOf("Banana");
System.out.println("Position des ersten Vorkommens von Banana: " + index1); // Gibt 1 aus
int index2 = fruits.indexOf("Grape");
System.out.println("Position von Grape: " + index2); // Gibt -1 aus
}
}
Benutzerdefinierte Objektsuche
Beispiel
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// equals-Methode überschreiben
@Override
public boolean equals(Object obj) {
if (this == obj) return wahr;
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));
// Person-Objekt finden
Person target = new Person("Bob", 30);
int index = people.indexOf(target);
System.out.println("Position von Bob: " + index); // Gibt 1 aus
}
}
Hinweise
Umgang mit null-Werten:
VectorKann null-Elemente enthalten; Sie könnenindexOf(null)um die Position von null-Elementen zu finden.Leistungsüberlegungen: Bei großen Vektoren kann die häufige Verwendung von
indexOf()zu Leistungsproblemen führen, da sie den gesamten Vektor durchlaufen muss.Threadsicherheit:
Vectorist threadsicher,indexOf()Methode kann sicher in einer Multithread-Umgebung verwendet werden.Unterschiede zu ArrayList:
ArrayListhat auch eine ähnlicheindexOf()Methode, aberVectorMethode ist synchronisiert, währendArrayListist nicht.
Verwandte Methoden
| Methode | Beschreibung |
|---|---|
lastIndexOf(Object elem) |
Gibt die Position des letzten Vorkommens des angegebenen Elements zurück |
contains(Object elem) |
Prüft, ob der Vektor das angegebene Element enthält |
get(int index) |
Ruft das Element an der angegebenen Position ab |
Zusammenfassung
Vector.indexOf(Object elem)ist eine einfache, aber praktische Methode, um die Position eines Elements in einem Vektor zu finden. Das Verständnis ihrer Funktionsweise und Eigenschaften ist sehr wichtig für die effektive Nutzung derVectorSammlung. Denken Sie daran, die Methode der benutzerdefinierten Objekte korrekt zu behandelnequals()und achten Sie auf die Auswirkungen auf die Leistung, wenn Sie mit großen Datenmengen umgehen.
Java Vector