首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >地图。Java语言。值的返回

地图。Java语言。值的返回
EN

Stack Overflow用户
提问于 2016-04-22 08:49:02
回答 1查看 115关注 0票数 1

我正在努力做到以下几点:

我需要创建一个方法,它返回一个由一个或多个参数指定的特定选择条件的所有值的集合。我的地图由PPS数字(键)和值(城镇、姓名、工作地点)组成,两者都是字符串。然而,我不确定我需要做什么才能在地图中获得placin之后的值。

代码语言:javascript
复制
/**
*This method returns a collection of all people who work for CO-OP
*/
public Set<String>  selectKeys(String factory)
{
    for (Set<String>eachTaxPayers : taxPayersList.values())
    {
        if(taxPayersList.values().contains(factory))
        {
             Set<String>eachClients = taxPayersList.keySet();
             System.out.println(taxPayersList.keySet());
        }  
    }

    return null ;
}

有人能帮帮我吗?

这是一个如何填充Map的代码。

代码语言:javascript
复制
public class Tax
{
   Map<String, Set<String>>taxPayersList;

   public Tax()
   {
     taxPayersList = new HashMap<>();
     Set<String>taxPayersDetails = new HashSet<>();
     taxPayersDetails.add(" Eddie Donegan");
     taxPayersDetails.add("Prodieco");
     taxPayersDetails.add("Limerick");
     taxPayersList.put("4481908A", taxPayersDetails);

     taxPayersDetails = new HashSet<>();
     taxPayersDetails.add(" Paddy Power");
     taxPayersDetails.add("Covenant");
     taxPayersDetails.add("Limerick");
     taxPayersList.put("6088989B", taxPayersDetails);

     taxPayersDetails = new HashSet<>();
     taxPayersDetails.add(" Mikey Obama");
     taxPayersDetails.add("Prodieco");
     taxPayersDetails.add("Limerick");
     taxPayersList.put("6788910B", taxPayersDetails);
   }
}

我只想返回为同一家公司工作的人的密钥( PPS号码

EN

回答 1

Stack Overflow用户

发布于 2018-08-20 08:18:58

代码语言:javascript
复制
public Set<String> selectKeys(String factory) {
  // our return Set
  Set<String> factoryWorkers = new HashSet<>();
  // Let's iterate over the map entries
  for (Map.Entry entry : taxPayersList.entrySet()) {
    // Let's grab the value of the current map entruy
    Set<String> eachTaxPayers = entry.getValue()
    // Risky move
    if(eachTaxPayers.contains(factory)) {
      // add the key (PPS) to the return set
      factoryWorkers.add(entry.getKey());
    }  
  }

  return factoryWorkers;
}

仅供参考,标记为"Risky“的行不是最好的方法。

虽然不太可能,但城市有可能与工厂同名。

你最好在集合上使用迭代器,并与第二个值进行比较。

更好的是,你可以有一个地图而不是一个Map>

其中Employee包含name、city和factoryName等字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36782824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档