【发布时间】:2020-05-22 18:05:10
【问题描述】:
请帮我按两个字段将对象与内部对象分组。
我有List<Man> 并且需要将它们按两个内置地址对象字段分组?
我想在答案中实现以下结构
Map<String, Map<String, List<Man>>> 其中第一个字符串是城市,第二个字符串是街道
public class Man {
private String name;
private Address address;
public Man(String name, Address address) {
this.name = name;
this.address = address;
}
}
public class Address {
private String city;
private String street;
public Address(String city, String street) {
this.city = city;
this.street = street;
}
}
public static void main(String[] args) {
List<Man> mans = new ArrayList<>();
mans.add(new Man("Jonh", new Address("NY", "123 street")));
mans.add(new Man("Alex", new Address("Denver", "6 street")));
mans.add(new Man("Kate", new Address("NY", "123 street")));
mans.add(new Man("Mary", new Address("Denver", "12 street")));
//How can I get the following answer?
//Map<String, Map<String, List<Man>>>, where first string is a city, and second string is street
// NY -
// |
// "123 street" -
// |
// Man(Jonh...)
// Man(Kate...)
// Denver -
// |
// "6 street" -
// |
// Man(Alex...)
// |
// "12 street" -
// |
// Man(Mary...)
}
【问题讨论】:
标签: java dictionary collections java-8 java-stream