java - 选择哪种数据结构?

标签 java data-structures guava

需要选择最佳数据结构以快速处理位置和区域列表。

位置(城市)有简单的 POJO:

public class Location {

    private String name;
    private int post; //id

对于地区(地区):

public class Region {
    private String name;
    private int id;
    private List<Location> cities;

最后,我得到了 Region 对象的 List。 我需要做的:

  1. 按帖子 (id) 搜索位置名称
  2. 按名称搜索位置帖子。 注意:名称不是唯一的,因此在名称相同的情况下,我需要优先选择某个具体位置而不是另一个位置

问题是我应该使用什么数据结构? 我正在考虑包含所有区域的所有位置的 TreeMap。所以我可以通过名称(字符串)快速获取位置。 对于 p 1. 我有解决方案: Location 的帖子包含 Region 的 id。因此,如果 Region 的 id=1,则其 Locations post 将为 10001、10002 等。 或者我可能需要选择一些由 Guava 引入的新 Collections 类型,因为它已经存在于项目中?

最佳答案

将所有位置添加到两个 HashMap:

  1. 以位置名称为键,以位置列表为值的所有位置。
  2. 其他以 id 为键,Location 为值的?

最好将两个 HashMap 隐藏在一个类中,为您进行查找。

还是我遗漏了什么?

关于java - 选择哪种数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10470147/

相关文章:

java - 如何按类别过滤列表?

java - 将值分配给Map(Hashmap或Multimap)

java - Java 6 中的 xerces 序列化

java - 错误: incompatible types (for sets)

java.sql.SQLException :invalid cursor state: identified cursor is not open identified cursor is not open

arrays - 循环队列中满/空缓冲区的区别

haskell - 哪个映射必须包含所有可能的键?

嵌套列表的 C 等价物 (Python)

java - Java中的SortedBiTreeMultimap数据结构?

java - Mongolab 身份验证失败的 Java