需要选择最佳数据结构,以便快速处理位置和区域列表。
地点(城市)有简单的POJO:
public class Location {
private String name;
private int post; //id
对于地区(地区):
public class Region {
private String name;
private int id;
private List<Location> cities;
最后我有List
个Region
个对象。
我需要做什么:
问题是我应该使用什么数据结构? 我在想TreeMap包含来自所有区域的所有位置。所以我可以通过Name(字符串)快速获取位置。 对于p 1.我有解决方案:位置的帖子包含Region的id。所以如果Region有id = 1,那么它的Locations帖子将是10001,10002等。 或者我可能需要选择Guava引入的一些新的Collections类型,因为它已经出现在项目中了?
答案 0 :(得分:2)
我建议您创建课程LocationRepository
:
class LocationRepository {
Location getById(int id);
Collection<Location> getByName(String id);
}
此存储库应该包含2个集合:Map(位置的HashMap或TreeMap:Map<Integer, Location>
其中key是位置ID。第二个映射应该是来自Guava的[MulitMap][1]
,它在名称和集合之间进行映射匹配的位置。
答案 1 :(得分:2)
将所有位置添加到两个HashMap
:
最好在一个类中隐藏两个哈希映射,为您执行查找。
或者我错过了什么?