【问题标题】:How to add only values at hashtable如何仅在哈希表中添加值
【发布时间】:2018-11-21 05:15:18
【问题描述】:

我被要求创建一个

Hashtable <Client, List<Article>> sellings

,然后,我应该创建一个方法

registerSellings(Client k ,Article a)

并且练习说如果Client k,存在于表sellings,那么该文章将作为值添加到销售表中,所以我是这样做的,

 if(sellings.containsKey(k)) {
 ....
 }

但是我应该在 if 块内写什么,将值添加到当前现有的键中,如果客户不存在作为销售表中的键,则将其添加到销售表中,包括新的文章列表作为一个值,首先添加已售商品。

【问题讨论】:

  • 你注意到 map 的值是List吗?

标签: java dictionary data-structures hashtable


【解决方案1】:

如果客户存在,只需add 将文章添加到他的列表中。如果他不创建新列表并添加到其中:

if (sellings.containsKey(k)) {
    sellings.get(k).add(a);
} else {
    List<Article> list = new ArrayList<>();
    list.add(a);
    sellings.put(k, list);
}

请注意,Java 8 的 computeIfAbsent 将使整个代码块消失,并生成更优雅的代码:

sellings.computeIfAbsent(k, s -> new ArrayList<>()).add(a);

【讨论】:

  • 非常感谢你,伙计!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 2019-10-02
  • 1970-01-01
  • 2012-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多