2016-03-31 2 views
0

У меня есть этот школьный вопрос:Обновления набора из карт аргумента в Java

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

Для каждого человека, находящегося на индивидуальной основе. Ваш метод должен проверить, является ли его номер человека одним из ключей на карте. Если это так, то продажи для этого Лица должны быть увеличены на значение карты, соответствующее этому ключу.

Это код, который я получил, очевидно, неправильно, любые указатели?

public void updatePersons (Map<String, Integer> pers) 
    { 
    for (Persons all : personSet) 
    { 
     if (all.getPersonNumber().equals(pers.keySet())) 
     { 
      personSet.add(pers); 
     } 
    } 
    } 
+0

'personSet' содержит объекты' Персоны'. Как вы собираетесь обновлять этот набор с помощью значения Integer, полученного с карты? – Eran

+1

Это не имеет большого смысла. Я думаю, что ваша модель данных может быть ошибочной. Попробуйте немного повысить уровень абстракции в своем вопросе и, возможно, предоставить больше контекста. –

+0

Пожалуйста, предоставьте код класса 'Персоны'. – slartidan

ответ

0

Так много коды отсутствует, я работаю на некоторых предположениях:

Если вы хотите обновить эталонное число лиц в наборе на основе карты, вы можете сделать это следующим образом :

for (Persons person: personSet) { 
    Integer reference = pers.get(person.getPersonNumber()); 
    if(reference != null) { 
    person.setReference(reference); 
    } 
} 

Вы перебираете всех людей и запрашиваете карту для значения, связанного с номером человека. Если такое значение существует, вы обновляете человека и продолжаете следующее.

Обратите внимание, что если ссылочный номер используется для сортировки набора, вам необходимо удалить и повторно вставить человека для сохранения порядка.

+0

Я обновил вопрос, будет ли ответ по-прежнему стоять? Спасибо! – seawork

+0

@seawork да ответ по-прежнему стоит с разницей «продажи для этого Лица должны быть увеличены на значение карты, соответствующее этому ключу» - то есть вам нужно добавить значение вместо его настройки. Кроме того, пожалуйста, сообщите нам вопрос/задачу с самого начала, прежде чем пытаться замаскировать его в противоречивых заявлениях/кодексах. – Thomas

+0

Я не пытался замаскировать что-нибудь приятельское, я старался держать вопрос простым. Спасибо – seawork

Смежные вопросы