Java Vector setSize()-Methode

Java Vector Java Vector


setSize()ist in JavaVectoreine wichtige, von der Klasse bereitgestellte Methode, mit der die neue Größe des Vektors festgelegt wird. Diese Methode kann dynamisch anpassenVectordie Kapazität, sodass sie die Laufzeitanforderungen des Programms erfüllen kann.

Methodensyntax:

public void setSize(int newSize)

Methodenparameter

Parameterbeschreibung

  • newSize: Dies ist der einzige Parameter der Methode und gibt dieVectorneue Größe
  • Typ:int(Ganzzahl)
  • Zweck: legt festVectordie angepasste Größe

Parametereigenschaften

  • WennnewSizegrößer als die aktuelle Größe,Vectores wird automatisch füllennullnull-Werte in die neu hinzugefügten Positionen
  • WennnewSizekleiner als die aktuelle Größe,Vectores wird die überschüssigen Elemente abschneiden
  • WennnewSizegleich der aktuellen Größe,Vectores bleibt unverändert

Methodenverhalten

Erweiterungsszenario

Wenn die neue Größe größer als die aktuelle Größe ist:

Beispiel

Vector<String> vector = new Vector<>(Arrays.asList("A", "B", "C"));
vector.setSize(5);
// jetzt enthält vector ["A", "B", "C", null, null]

Verkleinerungsszenario

Wenn die neue Größe kleiner als die aktuelle Größe ist:

Beispiel

Vector<String> vector = new Vector<>(Arrays.asList("A", "B", "C", "D"));
vector.setSize(2);
// jetzt enthält der Vektor ["A", "B"]

Gleiches Szenario

Wenn die neue Größe der aktuellen Größe entspricht:

Beispiel

Vector<String> vector = new Vector<>(Arrays.asList("A", "B", "C"));
vector.setSize(3);
// der Vektor bleibt unverändert, weiterhin ["A", "B", "C"]

Anwendungsbeispiel

Einfaches Beispiel

Beispiel

import java.util.Vector;

public class VectorSetSizeExample {
    public static void main(String[] args) {
        // Einen initialen Vektor erstellen
        Vector<Integer> numbers = new Vector<>();
        numbers.add(10);
        numbers.add(20);
        numbers.add(30);
       
        System.out.println("Originaler Vektor: " + numbers);
       
        // Den Vektor erweitern
        numbers.setSize(5);
        System.out.println("Erweiterter Vektor: " + numbers);
       
        // Den Vektor verkleinern
        numbers.setSize(2);
        System.out.println("Verkleinerter Vektor: " + numbers);
    }
}

Ausgabeergebnis:

原始 Vector: [10, 20, 30]
扩大后的 Vector: [10, 20, 30, null, null]
缩小后的 Vector: [10, 20]

Praktische Anwendungsszenarien

setSize()Die Methode ist besonders nützlich in den folgenden Szenarien:

  1. Speicherplatz vorab reservieren: Wenn Sie wissen, dass Sie eine bestimmte Anzahl von Elementen speichern müssen, können Sie die Größe im Voraus festlegen
  2. Überflüssigen Speicher freigeben: Wenn einige Elemente nicht mehr benötigt werden, können Sie verkleinernVectorum Speicher zu sparen
  3. Den Container zurücksetzen: Schnell leerenVectorund eine neue Größe festlegen

Beispiel

// Beispiel für das Vorabreservieren von Speicherplatz
Vector<String> names = new Vector<>();
names.setSize(100); // 100 Positionen vorab reservieren

// Beispiel für das Freigeben von überflüssigem Speicher
Vector<Double> prices = new Vector<>();
// ... nach dem Hinzufügen vieler Elemente ...
prices.setSize(10); // Nur die ersten 10 Elemente behalten

// Beispiel für das Zurücksetzen des Containers
Vector<Object> tempStorage = new Vector<>();
// ... nach der Verwendung ...
tempStorage.setSize(0); // Alle Elemente löschen

Hinweise

Leistungsüberlegungen

  • Häufige AufrufesetSize()können zu Leistungseinbußen führen, insbesondere bei großen Datenmengen
  • Wenn Sie häufig die Größe ändern müssen, erwägen Sie,ensureCapacity()die Methode zu verwenden, um ausreichend Speicherplatz vorab zuzuweisen.

Threadsicherheit

  • Vectorist threadsicher,setSize()die Methode ist ebenfalls synchronisiert
  • Die Verwendung in einer Multithread-Umgebung ist sicher, kann jedoch die Leistung beeinträchtigen

Alternativen

Im Java Collections FrameworkArrayListist eine modernere Alternative, hat aber keine direktesetSize()Methode. Wenn Sie ähnliche Funktionalität benötigen, können Sie Folgendes in Betracht ziehen:

Beispiel

// Verwendung von ArrayList zur Implementierung ähnlicher Funktionalität
ArrayList<String> list = new ArrayList<>();
// Erweitern
while (list.size() < newSize) {
    list.add(null);
}
// Verkleinern
while (list.size() > newSize) {
    list.remove(list.size() - 1);
}

Zusammenfassung

VectorvonsetSize()Die Methode bietet eine direkte Möglichkeit, die Größe des Vektors anzupassen, ob vergrößert oder verkleinert wird. ObwohlVectorin der modernen Java-Programmierung nicht soArrayListverbreitet ist, hat sie dennoch einen gewissen Wert in bestimmten spezifischen Szenarien (z. B. wenn Thread-Sicherheit erforderlich ist oder Legacy-Code gewartet werden muss). Das Verständnis des Verhaltens und der Eigenschaften dieser Methode kann Ihnen bei der Verwendung helfenVectorSammlungen.

Java Vector Java Vector

Andere Erweiterungen