Java Vector indexOf()-Methode

Java Vector Java Vector


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

import java.util.Vector;

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

import java.util.Vector;

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

  1. Umgang mit null-Werten:VectorKann null-Elemente enthalten; Sie könnenindexOf(null)um die Position von null-Elementen zu finden.

  2. Leistungsüberlegungen: Bei großen Vektoren kann die häufige Verwendung vonindexOf()zu Leistungsproblemen führen, da sie den gesamten Vektor durchlaufen muss.

  3. Threadsicherheit:Vectorist threadsicher,indexOf()Methode kann sicher in einer Multithread-Umgebung verwendet werden.

  4. 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 Java Vector

Andere Erweiterungen