So schreibe ich ein Programm, wo ich möchte, dass alle Elemente in einem Vektor auf einen bestimmten Wert festgelegt und neue Vektorlänge angegeben. Dies ist mein Code so weit:Uniform Set-Methode funktioniert nicht
public static Vector uniform(int length, long value) {
Vector vector = new Vector(length);
for (int i = 0; i < length; i ++) {
vector.elements[i] = this.value;
}
return this.vector;
}
Wenn jedoch dieses Programm läuft, sind alle Zahlen in den Vektor werden auf den angegebenen Wert gesetzt aber es nicht um die Anzahl von ganzen Zahlen im Array selbst zu ändern. Wie kann ich meinen Code reparieren, um dies zu zeigen?
'vector.elements [i]' sollte nicht einmal kompilieren, da es keine 'elements' Eigenschaft ist, nicht einmal ein geschützter/private ein. Ich denke, du meinst "vector.add (value)" stattdessen (beachte, dass 'new Vector (length)' einen Vektor mit einer initialen _capacity_ von 'length' erzeugt - er ist nach der Konstruktion immer noch leer). Abgesehen davon, dass 'Vector' ziemlich veraltet ist, warum nicht stattdessen' ArrayList' verwenden? – Thomas
Sie sollten vermeiden, dass Sie Ihre Klasse wie einen gewöhnlichen Built-in-Typ benennen. 'Vector' ist eine eingebaute Klasse. Wie Sie Ihre eigenen haben, gibt es keine Möglichkeit zu wissen, was Sie reparieren müssen. –
'Uniform' erstellt einen anderen, neuen Vector - könnte das das Missverständnis sein? Eine weitere Bemerkung: besser lange verwenden. Long, vielleicht mit einem 'booleschen berechnet;'. Long ist viel langsamer wegen der Notwendigkeit zu lange Boxen/Unboxing und eine mögliche Null-Überprüfung. –