Javaストリームを使用して段階的に模倣しようとしています。デバッガの各ステップで結果を見ることができるプラグインがあり、それが私の最終目標です。特定の数値が出力に与える変更をテストしたい場合もあります。Javaストリーム内で同じ値を再利用
ただし、最後のマッピング関数で1番目のマッピング関数で使用されていた1つの値を再利用する必要があります。 。私は何をしたいのかコメントしましたが、コンパイラはそれが間違っていると判断します。
基本的に、私はちょうど明確にする...
((2x + 10)/2) - x = 5
List<Month> months = new ArrayList<>(12);
months.add(new Month(1, "January"));
months.add(new Month(2, "February"));
months.add(new Month(3, "March"));
months.add(new Month(4, "April"));
months.add(new Month(5, "May"));
months.add(new Month(6, "June"));
months.add(new Month(7, "July"));
months.add(new Month(8, "August"));
months.add(new Month(9, "September"));
months.add(new Month(10, "October"));
months.add(new Month(11, "November"));
months.add(new Month(12, "December"));
months.stream() // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
.map((month) -> month.number * 2) // 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24
.map((product) -> product + 10) // 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34
.map((sum) -> sum/2) // 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
// --> .map((quotient) -> quotient - month.number) // 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
.toArray();
を以下の数学関数をテストしていて、私はmonth.number
値を再利用しようとしています。
編集 ただ、明確にするために、month.number
は最初.map()
とx
を表し、Iは2x
(month.number * 2
)の結果を示しています。
また、ここではあなたがあなたが投稿たとえば複数のマップを1つずつ必要はありませんMonth
private class Month {
int number;
String name;
public Month(int month, String name) {
this.number = month;
this.name = name;
}
}
何その*式*月名と関係があるのでしょうか? –
ああ、申し訳ありません、 'x = month.number'。名前はありませんが、後で月名を使用する予定です。今すぐ 'month.number'を使用しています –
元のxを現在のステップでの計算結果とともに保持するラッパークラスの導入を検討しましたか? – VitalyZ