java - 类的实例作为 hashmap 中的键

标签 java hashmap instance

我有这门课:

 public class Offer {

        private Integer id;
        private String description;
        private Double price;
        private String currency;
        private Date timeExpired;

        public Offer(Integer id, String description, Double price, String currency, Date timeExpired){

            this.id = id;
            this.description = description;
            this.price = price;
            this.currency = currency;
            this.timeExpired = timeExpired;
        }
}

我想创建一个 HashMap ,其键引用类 Offer 的 id,值作为 Offer

HashMap<id of Offer(?),Offer> repo = new HashMap<id of Offer(?),Offer>();

我怎样才能做到这一点?

如何在 Hashmap 存储库上将每个 Offer id 指定为键,将 Offer 对象指定为值? 我的意思是方法 repo.put(?)

最佳答案

因为id是Integer您需要 HashMap<Integer, Offer> :

public static void main(String[]args){
    HashMap<Integer, Offer> map = new HashMap<Integer, Offer>();

    // First way
    map.put(1038, new Offer(1038, "foo", 10.20, "bar", new Date()));

    // Second way
    Offer o1 = new Offer(1038, "foo", 10.20, "bar", new Date());
    map.put(o1.getId(), o1);

}
<小时/>

提示:

  • 使用intdouble而不是IntegerDouble如果您并不真正需要这些对象 ( int vs Integer )
  • 使用LocalDate而不是Date这是最新版本,而且更容易使用

关于java - 类的实例作为 hashmap 中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47121064/

相关文章:

java - 如何防止并行线程中的异常杀死应用程序?

java - 使用 split 时,字符串数组中的第一个元素为空

javascript - AngularJS 中传递的 Java REST API URL 不起作用

java - 将某物设置为 INSTANCE 而不是创建新对象是什么意思?

python - SQLAlchemy:分离对象的修改

java - 正则表达式模式匹配不适用于 java 中的特定字符串

jquery - Json 与 java hashmap

java - HashMap 做 containsKey 的方式不符合预期

java - 通过 hashmap 中的键获取值返回 null

.net - 在 .Net 中,如何检查两个标识符是否指向一个对象的同一实例?