我有这个学校的问题:
该方法不应返回任何值,但应将其键为字符串且其值为整数的映射作为其参数。字符串表示人员编号和各个销售数字的整数。地图条目不需要按任何特定顺序排列。
对于每个Person in personSet,您的方法应检查其personNumber是否是地图中的键之一。如果是这样,那个人的销售额应该增加与该密钥对应的地图值。
这是我得到的代码,显然它是不正确的,任何指针?
public void updatePersons (Map<String, Integer> pers)
{
for (Persons all : personSet)
{
if (all.getPersonNumber().equals(pers.keySet()))
{
personSet.add(pers);
}
}
}
答案 0 :(得分:0)
由于缺少大量代码,我正在做一些假设:
如果您想根据地图更新集合中人员的参考编号,您可以这样做:
for (Persons person: personSet) {
Integer reference = pers.get( person.getPersonNumber() );
if( reference != null ) {
person.setReference( reference );
}
}
您遍历所有人并在地图中查询与人员编号关联的值。如果存在这样的值,则更新此人并继续下一个人。
请注意,如果使用参考编号对集合进行排序,则必须删除并重新插入此人才能保留顺序。