我被要求创建一个
Hashtable <Client, List<Article>> sellings
,然后,我应该创建一个方法
registerSellings(Client k ,Article a)
练习表明,如果 Client k
,存在于表中 sellings
,那么文章就会作为一个值添加到销售表中,所以我是这样做的,
if(sellings.containsKey(k)) {
....
}
但是我应该在 if block 内写什么,以将值添加到当前现有的键,如果客户端不作为销售表中的键存在,则将其添加到销售表中,包括新的文章列表作为一个值,首先将已售出的商品添加到其中。
最佳答案
如果客户端存在,则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
将使整个 block 消失,并产生更优雅的代码:
sellings.computeIfAbsent(k, s -> new ArrayList<>()).add(a);
关于java - 如何在哈希表中仅添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50806453/