首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法检索在hashmap中添加的值。

无法检索在hashmap中添加的值。
EN

Stack Overflow用户
提问于 2020-08-12 12:32:49
回答 2查看 60关注 0票数 0

当我第二次尝试检索数据时,这段代码并没有给我数据。

  1. I输入域名和ip地址
  2. ,再输入DN和ip
  3. ,搜索第一个ip,给出正确的结果。
  4. 当我搜索第二个ip时,表示域名找不到

我不知道为什么我的循环没有给出正确的结果?我可以看到,数据是可用的--它进入验证的if部分,但不返回数据,它转到enters部分并打印没有可用的数据。

代码语言:javascript
运行
复制
 //Main class
{
     System.out.println("1. Add DNS details");
     System.out.println("2. Find matching Domain Name");
     System.out.println("3. Exit");
     System.out.println("Enter your choice");

    //After entering the choice 
    System.out.println("Enter the IP address to find the domain name");
    ip = sc.nextLine();
    DomainName = dBO.findDomainName(ip);
}

    //FindDomainname.java class
    public String findDomainName(String ipAddress) {
        
      String domain=null;
        
        if(domainMap.isEmpty()){
        return domain;
        }
        else
        for (Map.Entry<String, String> entry : domainMap.entrySet()) {
            String k = entry.getKey();
            String v = entry.getValue(); 
            
            if (ipAddress.equals(v)) {
                domain = k;                 
            }
            else
            {
                domain = "No matching domain name found";
                
            }
     }    
    
    return domain;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-12 12:41:10

流解决方案。当找到匹配时,您的错误不是从循环中断开的。

代码语言:javascript
运行
复制
public String findDomainName(String ipAddress) {
    return domainMap.entrySet().stream()
        .filter(entry -> entry.getValue().equals(ipAddress))
        .findAny().orElse(domainMap.isEmpty() ? null
                          : "No matching domain name found");
}    
票数 1
EN

Stack Overflow用户

发布于 2020-08-12 12:39:12

您需要在找到条目后立即退出for循环,否则它将在映射中的下一个条目上移动,并且该条目可能不匹配。添加断续语句如下:

代码语言:javascript
运行
复制
if (ipAddress.equals(v)) {                
    domain = k;  
    break;               
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63376615

复制
相关文章

相似问题

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