Java Vector setSize()-Methode
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 fest
Vectordie angepasste Größe
Parametereigenschaften
- Wenn
newSizegrößer als die aktuelle Größe,Vectores wird automatisch füllennullnull-Werte in die neu hinzugefügten Positionen - Wenn
newSizekleiner als die aktuelle Größe,Vectores wird die überschüssigen Elemente abschneiden - Wenn
newSizegleich 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.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.setSize(2);
// jetzt enthält der Vektor ["A", "B"]
Gleiches Szenario
Wenn die neue Größe der aktuellen Größe entspricht:
Beispiel
vector.setSize(3);
// der Vektor bleibt unverändert, weiterhin ["A", "B", "C"]
Anwendungsbeispiel
Einfaches Beispiel
Beispiel
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:
- 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
- Überflüssigen Speicher freigeben: Wenn einige Elemente nicht mehr benötigt werden, können Sie verkleinern
Vectorum Speicher zu sparen - Den Container zurücksetzen: Schnell leeren
Vectorund eine neue Größe festlegen
Beispiel
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 Aufrufe
setSize()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
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