がストリームに新しいですが、それほどではない...これは私の問題である:リストストリームをマップに分割すると、カスタムコレクターが必要になるのですか?
私はexeファイルの上に権のいくつかの種類を持つユーザーを持っているPCから読んでいますリストを持っています...
:私はMap<String, String>
{USER1 = READ-WRITE-EXECUTE-DELETE, USER2 = READ-WRITE, USER3 = READ}
などを持っていると思いますが、私のコードが生成され
List<String> xyzList = new ArrayList<>();
xyzList.add("USER1.READ");
xyzList.add("USER1.WRITE");
xyzList.add("USER1.EXECUTE");
xyzList.add("USER1.DELETE");
xyzList.add("USER2.READ");
xyzList.add("USER3.READ");
xyzList.add("USER2.EXECUTE");
のような文字列に見えるように私が得たリスト
{USER1=USER1.READ-USER1.WRITE-USER1.EXECUTE-USER1.DELETE, USER2=USER2.READ-USER2.EXECUTE, USER3=USER3.READ}
私は値のセットを編集することができますが、その結果を扱うことを決めるのはわかりますが、ただ1つのストリーム命令でそれを取得するよりエレガントな方法を探しています。そのために...
は...これまで
Map<String, String> result = xyzList
.stream()
.collect(
Collectors.groupingBy(x -> x.split("\\.")[0],
Collectors.joining("-", "", "")
));
System.out.println(result);
どんな提案をしてみてください、私の?
ストリップ '' mapping' Collector'の最初の部分。 –