[解決済み] Java 8 Lambdaによる配列のフィルタリング
2023-06-30 17:04:32
質問
私は
double[]
を追加することなく、一行で負の値をフィルタリングしたい(含まない新しい配列を作成したい)。
for
ループを追加することなく、1行で負の値をフィルタリングしたい(負の値のない新しい配列を作成したい)。これは、Java 8のラムダ式を使用して可能ですか?
pythonではジェネレータを使用してこのようになります。
[i for i in x if i > 0]
Java8で同じような簡潔なことは可能でしょうか?
どのように解決するのですか?
はい、これは
DoubleStream
を作成し、負の部分をフィルタリングして、 ストリームを配列に戻すことで可能です。以下はその例です。
double[] d = {8, 7, -6, 5, -4};
d = Arrays.stream(d).filter(x -> x > 0).toArray();
//d => [8, 7, 5]
でない参照配列をフィルタリングしたい場合、その配列は
Object[]
でない参照配列をフィルタリングしたい場合は
toArray
メソッドを使用する必要があります。
IntFunction
を受け取り、結果として元の型の配列を得ます。
String[] a = { "s", "", "1", "", "" };
a = Arrays.stream(a).filter(s -> !s.isEmpty()).toArray(String[]::new);
関連
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
NullPointerException - java.lang.
-
セミコロン期待値エラー解決
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] リスト内包とラムダ+フィルタの比較
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
NullPointerException - java.lang.
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
Javaでよくある構文エラー
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
SLF4J: クラス・パスに複数のSLF4Jバインディングが含まれています。
-
Javaクラスが "Error occurred during initialization of boot layer "というエラーで実行される。
-
JAVA_HOME環境変数が正しく定義されていない問題を解決する
-
アノテーション「@Retention」の役割
-
Java基礎編 - オブジェクト指向
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法