[解決済み] Java ストリームを特定の型の配列に変換する関数です。
2023-05-09 16:59:32
質問
これは非常に簡単なことかもしれませんが、実は私はJava 8の機能に疎く、これを達成する方法がわかりません。私は次のテキストを含むこの単純な行を持っています。
キー、名前"。
で、その行をカンマ(,)で区切ってString配列に変換したいのですが、最終的な配列を返す前にすべてのフィールドをトリミングしたいので、次のようにしました。
Arrays.stream(line.split(",")).map(String::trim).toArray();
しかし、これはString[]配列ではなく、Object[]配列を返します。さらに調べてみると、中身は実際にはStringインスタンスですが、配列自体はObject要素であることが確認できます。これはデバッガーが返されたオブジェクトについて言っていることです。
Object[]:
0 = (String) "Key"
1 = (String) "Name"
見る限り、問題はmap呼び出しの戻り値の型にあるようですが、どうすればString[]配列を返すようになるのでしょうか?
どのように解決するのですか?
使用方法
toArray(size -> new String[size])
または
toArray(String[]::new)
.
String[] strings = Arrays.stream(line.split(",")).map(String::trim).toArray(String[]::new);
のラムダ式です。
.toArray(new IntFunction<String[]>() {
@Override
public String[] apply(int size) {
return new String[size];
}
});
配列を同じ大きさの文字列配列に変換することを指示しているところです。
からは ドキュメント
ジェネレータ関数は、希望する配列のサイズである整数を受け取り、希望するサイズの配列を生成します。これは配列コンストラクタの参照で簡潔に表現することができます。
Person[] men = people.stream()
.filter(p -> p.getGender() == MALE)
.toArray(Person[]::new);
型パラメータです。
A - 結果として得られる配列の要素タイプ
パラメータです。
generator - 指定された長さの、指定された型の新しい配列を生成する関数です。
関連
-
javaの非静的メソッドを静的に参照することができない
-
シェルコマンドやスクリプトのJavaコール
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] Java 8 StreamをArrayに変換する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
無効なメソッド宣言
-
Junitのユニットテストはjava.lang.Testを報告します。
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
アクセス制限の解決方法: ---- in Java
-
テストが空であるかどうかを判断するためのオプションの処理
-
htmlとwordの相互変換の実装(画像あり)