新しい1.8ストリームAPIで文字列を連結する方法 [重複]について
2023-08-17 16:54:10
質問
Personコレクションのすべての名前を連結し、結果の文字列を返す簡単なメソッドがあるとします。
public String concantAndReturnNames(final Collection<Person> persons) {
String result = "";
for (Person person : persons) {
result += person.getName();
}
return result;
}
このコードを新しいストリームAPIのforEach関数で1行で書く方法はありますか?
どのように解決するのですか?
やりたいことの公式ドキュメントです。 https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html
// Accumulate names into a List
List<String> list = people.stream().map(Person::getName).collect(Collectors.toList());
// Convert elements to strings and concatenate them, separated by commas
String joined = things.stream()
.map(Object::toString)
.collect(Collectors.joining(", "));
あなたの例では、次のようにする必要があります。
// Convert elements to strings and concatenate them, separated by commas
String joined = persons.stream()
.map(Person::getName) // This will call person.getName()
.collect(Collectors.joining(", "));
に渡される引数は
Collectors.joining
は省略可能です。
関連
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] 英数字のランダムな文字列を生成する方法
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
強制型変換について
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
-bash: java: コマンドが見つからない 解決方法
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
htmlとwordの相互変換の実装(画像あり)
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
[解決済み】ストリームを使用して、オブジェクトのリストをtoStringメソッドから取得した文字列に変換する