Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich beschäftige mich seit ein paar Tagen mit Java und habe nun mein erstes kleines Programm fertig. Jetzt stehe ich vor einem kleinen Problem:
Ich verwende in einer Schleife ein Array. Dieses wird in der Schleife mit Werten gefüllt, muss beim nächsten Schleifendurchgang aber wieder "leer" sein (alle Werte auf 0). nun gibt es wohl verschiedene Möglichkeiten dieses Problem zu lösen, mich würde aber mal interessieren welche die beste ist.
Variante 1:
Code:
while(bedingung){
int[] feld = new int[10];
// tuwas mit dem Array und befülle es mit Werten
feld = null;
}
Variante 2:
Code:
int[] feld = new int[10];
while(bedingung){
for(x=0;x<9;x++)
feld[x] = 0;
// tu Array voll machen
}
Naja, es gibt wohl noch andere Möglichkeiten. Ich frage mich halt nur wie es am effektivsten hinbekomme das dass Array bei jedem Schleifendurchgang quasi geleert wird.
was heißt schon effektiv,
Variante 1 ist im Code einfacher, aber erzeugt neue Objekte,
was allgemein nicht so schön ist und wahrscheinlich länger dauert, im Millisekundenbereich aber kaum eine Rolle spielt
Ich verwende in einer Schleife ein Array. Dieses wird in der Schleife mit Werten gefüllt, muss beim nächsten Schleifendurchgang aber wieder "leer" sein (alle Werte auf 0).
Kannst Du den entsprechenden Code mal zeigen? Wenn Du ausschließlich schreibend auf das Array zugreifst ist es doch egal, ob da noch Berechnungen von vorher drin stehen. Oder liest Du auch aus dem Array und brauchst dann die 0?
Arrays.fill() sieht gut aus. Danke. Habe noch nicht so den Überblick über alle Funktionen und Klassen.
@Gast:
Welchen Sinn soll es haben ein Array mit Werten zu füllen und sie anschließend nicht auszulesen? Also ich fülle in der Schleife das Array mehrfach mit Werten und lese sie natürlich auch wieder aus.
Warum ich bei jedem Schleifendurchlauf die Größe des Arrays ermitteln soll, wo ich sie doch zwei Zeilen vorher selber festgelegt habe, erschließt sich mir auch nicht so ganz.
Das da nun x<9 anstatt x<10 steht ist erstmal völlig wumpe. Ist ja schließlich nur ein Beispiel welches das Problem verdeutlichen soll. Und das habe ich mir flott aus dem Handgelenk geschüttelt.
Trotzdem großes Danke Schön an alle. Das Forum hat mir schon bei so einigen Sachen auf die Sprünge geholfen.
natürlich war 'Arraynutzung durch vollständiges Schreiben des Arrays vor jeweiligen Lesen' gemeint,
ein Witz geht ja noch, aber länger muss man darüber auch nicht diskutieren
> Warum ich bei jedem Schleifendurchlauf die Größe des Arrays ermitteln soll, wo ich sie doch zwei Zeilen vorher selber festgelegt habe, erschließt sich mir auch nicht so ganz
wenn du später mal die Arraygröße auf 20 umstellst, vergisst du vielleicht an andere Stelle auch umzustellen,
hier heißt es abwägen, lieber den PC nochmal 1 microsekunde arbeiten lassen als den Code kompliziert zu gestalten,
aber man kann auch die Variante mit der Zahl lesbarer sehen, denkbar ist vieles
Mir geht es darum, ob Du die Werte bereits BEIM BEFÜLLEN ausliest (etwa, weil Du Teilsummen bildest oder was weiß ich). Falls nicht ist es doch egal, was durch die vorherige Iteration drinsteht, dann brauchst Du das Array auch nicht "löschen".
Bitte zeige den Code, in dem Du das Array befüllst, um Zweifel zu beseitigen.
DocNoNo hat gesagt.:
Warum ich bei jedem Schleifendurchlauf die Größe des Arrays ermitteln soll, wo ich sie doch zwei Zeilen vorher selber festgelegt habe, erschließt sich mir auch nicht so ganz.