Frage von wolfgang9999, 74

Schwierige Frage zu Java 8?

Hallo Community, ich sitzt jetzt schon seit einer Ewigkeit an einem Problem. Ich möchte die For-Schleife for(int i = 0; i*i < irgendwas; i++) mit Java-8-Streams schreiben. Mein Ansatz ist Stream.iterate(0,x->x+1).limit( ...) <- und da ist schon das Problem. Was gebe ich als Limit ein?

Antwort
von HellasPlanitia, 45

Ich programmiere kaum in Java, habe also höchstens eine rudimentäre Ahnung davon. Aber mein erster Gedanke: kommt beim Limit nicht einfach die Wurzel aus "irgendwas" rein? Wenn i*i < irgendwas gelten muss, dann gilt auch i < wurzel(irgendwas).

Hilft das evtl.?

Kommentar von wolfgang9999 ,

Das ist allerdings nur für diesen Fall möglich ... löst aber das eigentliche Problem nicht. Ich bin mittlerweile auf die Idee zu kommen, die nicht die bedingung erfüllenden Stream-Objekte zu filtern. Das erzeugt zwar Redundanzen, funktioniert aber:-)

Kommentar von HellasPlanitia ,

Wenn die Abbruchbedingung natürlich so komplex ist, dass sie sich nicht mehr auf die Form "i < k" bringen lässt (wobei k eine nicht von i abhängige Zahl ist), dann geht das nicht, stimmt. Wobei mir noch kaum je so eine Abbruchbedingung begegnet wäre, soweit ich mich erinnere. In dem Fall weiss ich aber leider auch nicht weiter.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten