有个地点类Place,其构造函数为Place(String name, Position p, String description), 其中坐标Position类的构造函数为Position(int x, int y)。
现在有一个存有Place对象的集合HashSet<Place> places=new HashSet<>(); 由于一个名字name可能对应多个不同Place对象,为了方便按地名查询,得到此相同名字的各个地点,想把地点按照同名排列,就是把地点对象组织成一个map: Map<String, Set<Place>> map=new HashMap<>()里。请问如何从已有的集合places得到map?其中map的key为字符串,是地点的名字,value为有对应名字的Place的Set集合。提前感谢大侠!
什么情况下要这么做?是从数据库取出来的数据吗?数据非常大?内存不够用?如果想把整个Set放到Map里,就楼上的loop就行。我假设你数据很大,不想浪费内存,所有数据都cache在内存里,很少用到按照name取地点。不用Set,用List,然后按照name Collections.sort一下List,根据name取的话用Collections.binarySearch。