从Java中的Map参数更新Set

时间:2016-03-31 12:45:36

标签: java dictionary treeset

我有这个学校的问题:

该方法不应返回任何值,但应将其键为字符串且其值为整数的映射作为其参数。字符串表示人员编号和各个销售数字的整数。地图条目不需要按任何特定顺序排列。

对于每个Person in personSet,您的方法应检查其personNumber是否是地图中的键之一。如果是这样,那个人的销售额应该增加与该密钥对应的地图值。

这是我得到的代码,显然它是不正确的,任何指针?

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

1 个答案:

答案 0 :(得分:0)

由于缺少大量代码,我正在做一些假设:

如果您想根据地图更新集合中人员的参考编号,您可以这样做:

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

您遍历所有人并在地图中查询与人员编号关联的值。如果存在这样的值,则更新此人并继续下一个人。

请注意,如果使用参考编号对集合进行排序,则必须删除并重新插入此人才能保留顺序。