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