[解決済み] Java 8 は、値や関数を繰り返す良い方法を提供していますか?
2022-06-26 14:27:46
質問
他の多くの言語、例えばHaskellでは、値や関数を複数回繰り返すことは簡単です。
take 8 (repeat 1)
というのがありますが、Java8ではまだ見つかっていません。 Java 8のJDKにはそのような機能はないのでしょうか?
または代わりに、以下のような範囲に相当するものがあります。
[1..8]
のようなJavaの冗長な文の代わりになるのは明らかだと思われます。
for (int i = 1; i <= 8; i++) {
System.out.println(i);
}
のようなものを持つようにします。
Range.from(1, 8).forEach(i -> System.out.println(i))
この例は、実際にはあまり簡潔には見えませんが...読みやすくなっていることを願っています。
どのように解決するのですか?
この具体的な例では、次のようにすればよいでしょう。
IntStream.rangeClosed(1, 8)
.forEach(System.out::println);
1とは異なるステップが必要な場合は、マッピング関数を使用することで、例えば、2というステップにすることができます。
IntStream.rangeClosed(1, 8)
.map(i -> 2 * i - 1)
.forEach(System.out::println);
または、カスタムイテレーションを構築し、イテレーションのサイズを制限する。
IntStream.iterate(1, i -> i + 2)
.limit(8)
.forEach(System.out::println);
関連
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み] 文字列を繰り返す簡単な方法
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
-
[解決済み】Javaの「ダブルブレース初期化」の効率化?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
this()の呼び出しはコンストラクタ本体の最初の文でなければならない 例外解決と原因分析
-
プロローグでのコンテンツは禁止されています
-
JavaMailのメール送信が失敗するケースとその説明の分析
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException: 1
-
linux run jarfile Invalid or corrupt jarfile error.
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
コミットには何も追加されないが、未追跡のファイルが存在し、gitで未追跡のファイルに対する完璧な解決策