Как добавить только значения в хеш-таблице - PullRequest
0 голосов
/ 12 июня 2018

Меня просят создать

Hashtable <Client, List<Article>> sellings

, а затем есть метод, который я должен создать

registerSellings(Client k ,Article a)

и в упражнениях говорится, что если Client k существует на столе sellings, то статья будет добавлена ​​в таблицу продаж в качестве значения, поэтому я сделал это следующим образом:

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

но что я должен написать внутри блока if, чтобы добавить значение к текущему существующему ключу, если клиент не существует в качестве ключа в таблице продаж, а затем добавить его в таблицу продаж, включая новый список статей в качествезначение, к которому сначала добавляется проданный товар.

1 Ответ

0 голосов
/ 12 июня 2018

Если клиент существует, просто 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);
...