Heim  >  Artikel  >  Java  >  Studiennotizen zur Verwendung von Vektorklassen in der Java-Programmierung

Studiennotizen zur Verwendung von Vektorklassen in der Java-Programmierung

黄舟
黄舟Original
2017-01-20 11:05:191661Durchsuche

Vector wird normalerweise zum Implementieren dynamischer Arrays verwendet, dh zum Implementieren automatisch wachsender Objektarrays. Schauen wir uns auch die grundlegende Verwendung der Vektorklasse an

java.util.vector stellt eine Vektorklasse (Vektor) zur Implementierung ähnlicher Funktionen wie dynamische Arrays bereit. In der Java-Sprache gibt es kein Zeigerkonzept, aber wenn Zeiger korrekt und flexibel verwendet werden, kann die Qualität des Programms tatsächlich erheblich verbessert werden. Beispielsweise werden sogenannte „dynamische Arrays“ in C und C++ im Allgemeinen durch Zeiger implementiert. Um diesen Mangel auszugleichen, bietet Java eine umfangreiche Klassenbibliothek, die Programmierern die Verwendung erleichtert, und die Vektorklasse ist eine davon. Tatsächlich kann die flexible Verwendung von Arrays auch die Funktionen der Vektorklasse vervollständigen, die Vektorklasse bietet jedoch eine große Anzahl von Methoden, was die Verwendung durch den Benutzer erheblich erleichtert.

Nachdem Sie ein Vektorklassenobjekt erstellt haben, können Sie nach Belieben Objekte verschiedener Klassen darin einfügen, ohne den Typ zu berücksichtigen oder die Kapazität des Vektors vorab auszuwählen, und Sie können problemlos suchen. Für Situationen, in denen die Array-Größe unbekannt ist oder nicht im Voraus definiert werden kann und häufiges Suchen, Einfügen und Löschen erforderlich ist. Erwägen Sie die Verwendung von Vektorklassen.
Die Vector-Klasse implementiert ein dynamisches Array. Ähnlich wie ArrayList, aber anders:

Auf den Vektor wird synchron zugegriffen.

Vector enthält viele traditionelle Methoden, die nicht Teil des Sammlungsrahmens sind.

Vector wird hauptsächlich verwendet, wenn die Größe des Arrays nicht im Voraus bekannt ist oder wenn Sie nur ein Array benötigen, das die Größe ändern kann.

Die Vektorklasse unterstützt 4 Konstruktionsmethoden.

1. Die erste Konstruktionsmethode erstellt einen Standardvektor mit einer Standardgröße von 10:

Vector()

2. Die zweite Konstruktionsmethode erstellt einen Vektor der angegebenen Größe.

Vector(int size)

3. Die dritte Konstruktionsmethode erstellt einen Vektor der angegebenen Größe, und das Inkrement wird durch incr angegeben. Das Inkrement stellt die Anzahl der Elemente dar, die dem Vektor jedes Mal hinzugefügt werden.

Vector(int size,int incr)

4. Die vierte Konstruktionsmethode erstellt einen Vektor, der Elemente der Sammlung c enthält:

Vector(Collection c)

If Wenn Sie die erste Methode verwenden, verwaltet das System den Vektor automatisch, wenn Sie die beiden letztgenannten Methoden verwenden. Anschließend legt das System die Kapazität des Vektorobjekts (d. h. die Größe der Daten, die das Vektorobjekt speichern kann) basierend auf dem Parameter initialcapacity fest. Wenn die Anzahl der tatsächlich gespeicherten Daten die Kapazität überschreitet. Das System erweitert die Speicherkapazität für Vektorobjekte.

Der Parameter Kapazitätsinkrement gibt den Erweiterungswert jeder Erweiterung an. Wenn das Kapazitätsinkrement 0 ist, wird es jedes Mal verdoppelt. Diese Funktion kann zur Speicheroptimierung verwendet werden. In der Vector-Klasse werden verschiedene Methoden bereitgestellt, um die Verwendung durch den Benutzer zu erleichtern:

Einfügefunktion:

(1) public final synchronisiert void adddElement(Object obj)
Obj in das Ende des Vektors einfügen. obj kann jede Art von Objekt sein. Für dasselbe Vektorobjekt können auch Objekte unterschiedlichen Typs eingefügt werden. Allerdings sollten Objekte anstelle von Werten eingefügt werden. Achten Sie daher beim Einfügen von Werten darauf, das Array in das entsprechende Objekt umzuwandeln.
Zum Beispiel: Wenn Sie die Ganzzahl 1 einfügen möchten, rufen Sie v1.addElement(1) nicht direkt auf. Die richtige Methode ist:

Vector v1 = new Vector(); 
Integer integer1 = new Integer(1); 
v1.addElement(integer1);
(2) public final synchronisiert void setElementAt(Object obj, int index)

Setzen Sie das Objekt am Index auf obj, und das ursprüngliche Objekt wird überschrieben.
(3)public final synchronisiert void insertElement(Object obj,int index)
Fügen Sie obj an der durch den Index angegebenen Position ein, und das ursprüngliche Objekt und die nachfolgenden Objekte werden der Reihe nach verschoben.

Funktion löschen:

(1)public final synchronisiert void removeElement(Object obj)
Obj aus dem Vektor löschen, versuchen Sie, vom Vektorkopf aus zu beginnen und das gefundene zu löschen . Ein Vektorelement, das mit obj identisch ist.
(2)public final synchronisiert void removeAllElement();
Löschen Sie alle Objekte im Vektor
(3)public fianl synchronisiert void removeElementAt(int index)
Löschen Sie das Objekt, auf das der Index zeigt

Abfragesuchfunktion:

(1)public final int indexOf(Object obj)
Starten Sie die Suche nach obj vom Vektorkopf aus und geben Sie den Index zurück, der dem ersten gefundenen obj entspricht, wenn dieses nicht existiert , gibt -1 zurück.
(2)public final synchronisiert int indexOf(Object obj,int index)
Starten Sie die Suche nach obj aus dem durch index dargestellten Index
(3)public final int lastindexOf( Object obj )
Beginnen Sie am Ende des Vektors und suchen Sie obj in umgekehrter Reihenfolge.
(4)public final synchornized int lastIndex(Object obj,int index)
Suchen Sie obj in umgekehrter Reihenfolge vom Ende zum Anfang Index dargestellt durch Index.
(5)public final synchornized firstElement()
Erstes Objekt im Vektorobjekt abrufen
(6)public final synchornized Object lastElement()
Das letzte Objekt abrufen von das Vektorobjekt

Beispiel

Das folgende Programm veranschaulicht mehrere von dieser Sammlung unterstützte Methoden:

import java.util.*;
 
public class VectorDemo {
 
  public static void main(String args[]) {
   // initial size is 3, increment is 2
   Vector v = new Vector(3, 2);
   System.out.println("Initial size: " + v.size());
   System.out.println("Initial capacity: " +
   v.capacity());
   v.addElement(new Integer(1));
   v.addElement(new Integer(2));
   v.addElement(new Integer(3));
   v.addElement(new Integer(4));
   System.out.println("Capacity after four additions: " +
     v.capacity());
 
   v.addElement(new Double(5.45));
   System.out.println("Current capacity: " +
   v.capacity());
   v.addElement(new Double(6.08));
   v.addElement(new Integer(7));
   System.out.println("Current capacity: " +
   v.capacity());
   v.addElement(new Float(9.4));
   v.addElement(new Integer(10));
   System.out.println("Current capacity: " +
   v.capacity());
   v.addElement(new Integer(11));
   v.addElement(new Integer(12));
   System.out.println("First element: " +
     (Integer)v.firstElement());
   System.out.println("Last element: " +
     (Integer)v.lastElement());
   if(v.contains(new Integer(3)))
     System.out.println("Vector contains 3.");
   // enumerate the elements in the vector.
   Enumeration vEnum = v.elements();
   System.out.println("\nElements in vector:");
   while(vEnum.hasMoreElements())
     System.out.print(vEnum.nextElement() + " ");
   System.out.println();
  }
}
Die Kompilierungs- und Ausführungsergebnisse des obigen Beispiels lauten wie folgt:

Initial size: 0
Initial capacity: 3
Capacity after four additions: 5
Current capacity: 5
Current capacity: 7
Current capacity: 9
First element: 1
Last element: 12
Vector contains 3.
 
Elements in vector:
1 2 3 4 5.45 6.08 7 9.4 10 11 12
Das Obige ist Java-Programmierung. Der Inhalt der Hinweise zur Verwendung von Vektorklassen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn