我現在有一類,如何添加標籤到由Java 8分組功能形成的結果中?
public class Person {
private String country;
private String age;
private String name;
}
以這個人類作爲參數的一個列表,
List<Person>
我使用爪哇8組由管理對它們作如下的數據結構組(集合)功能:
Map<String, Map<String, Set<String>>>
實施例:
USA={
21=
[
John,
Peter.
Andrew
],
22=
[
Eric,
Mark
]
]
},
France = {
etc....
下面是我的函數:
public static Map<String, Map<String, Set<String>>> getNestedMap(List<Person> persons) {
return persons.stream().collect(
groupingBy(Person::getCountry,
groupingBy(Person::getAge,
mapping(Person::getName, toSet())
)));
}
不過,我想我的數據結構,看起來像這樣,帶標籤的每個級別。有沒有一種方法Java 8 group by(collection)可以幫助實現這個嗎?還是有更好的方法?
Country = USA,
AgeList = {
Age = 21,
People =
[
[Name = John],
[Name = Peter],
[Name = Andrew]
],
Age = 22,
People =
[
[Name = Eric],
[Name = Mark]
]
]
},
Country = France,
AgeList = {
etc....
我可能不會(只)爲此使用流。流是一種工具,如果你發現自己在使用它們的時候跳過,那麼值得問問他們是否真的是工作的正確工具。即使你*能夠*在一個單一的流表達式中獲得你正在尋找的結構,所得到的代碼對於未來的讀者(包括你自己)來說將難以理解。 – dimo414
您在問題中顯示的「數據結構」不是數據結構,而是文本表示,顯然是JavaScript語法的JSON語法,但不是Java。當你想要某個*數據結構*時,你應該指定一個數據結構。 – Holger