Java 哈希映射是正确的数据结构吗

Java 哈希映射是正确的数据结构吗,java,data-structures,hashmap,Java,Data Structures,Hashmap,我在HashMap中存储了3种类型的对象 HashMap<String, ArrayList<Car>> ['Lorry', [list of lorries]] ['Sport', [list of sport's cars]] HashMap [‘卡车’,[卡车清单]] [‘Sport’,[Sport汽车列表]] HashMap字符串键保留对象的类型(Car的子类),第二个元素在数组中存储具有诸如:ID、date等属性的对象 我要做的四件事是: 当没有提供有关其

我在HashMap中存储了3种类型的对象

HashMap<String, ArrayList<Car>>

['Lorry', [list of lorries]]
['Sport', [list of sport's cars]]
HashMap
[‘卡车’,[卡车清单]]
[‘Sport’,[Sport汽车列表]]
HashMap字符串键保留对象的类型(Car的子类),第二个元素在数组中存储具有诸如:ID、date等属性的对象

我要做的四件事是:

  • 当没有提供有关其类型的信息时,检查HashMap中是否存在特定ID
  • 打印给定类型的特定ID的元素
  • 打印特定类型的所有元素
  • 如果每个对象指定的某个属性的布尔值为“true”,则打印集合中的所有元素(不同类型)
    HashMap的结构正确吗?如果涉及到第一点,我会觉得有问题。似乎我必须遍历整个集合,如果这样,其他集合对这些要求会更好吗?< /P> < P> A<代码> HashMap <代码>是该作业的正确数据结构,但在您的情况下,您可能会考虑使用两个哈希图:一个持有关系“Car Type”->“类型的汽车”,第二个是关系“ID”->“Car with the ID”

    基本方法是合理的,但是,因为您只想存储每个实例一次,所以对于地图条目值,
    集合
    列表
    更好:

    Map<String, Set<Car>> typeCache = new HashMap<String, HashSet<Car>>();
    

    ID和类型之间有什么区别?ID只是唯一的标识符吗?钥匙扮演什么角色?共享将数据放入此HashMap的示例。ID是整个集合中的唯一标识符,并“附加”到具体对象。类型只是汽车的类型,例如运动型、卡车等,所以可以安全地假设ID键,对吗?还是键入密钥?澄清这一部分,我们将能够确定地图是否适合此任务。
    Map<String, Object> idCache = new HashMap<String, Object>();