java - 将映射键与字符串列表进行比较

标签 java dictionary comparison

map可以与java中的字符串数组列表进行比较

private Map<String, String> checkInScopeLobs(Map<String, String> allLobsChkBx)
    {
        Map<String, String> inScopeLobs = new HashMap<String, String>();; 
        for (Map.Entry<String, String> entry : allLobsChkBx.entrySet())
        {
          if(entry.getKey().contains("1") || entry.getKey().contains("2") || entry.getKey().contains("3")){
              inScopeLobs.put(entry.getKey(), entry.getValue());
          }
        }
        return inScopeLobs;
    }

这是正确的方法吗?

最佳答案

您可以使用keySet()。此方法返回键的Set(有关详细信息, Docs from Oracle about Map )。这意味着比迭代整个 map 的开销更少。在以下情况下,您将仅请求匹配键的值。

还有一些其他错误,例如双分号,并且从 JDK7 开始,您不必在初始化时定义映射。

private Map<String, String> checkInScopeLobs(Map<String, String> allLobsChkBx) {
    Map<String, String> inScopeLobs = new HashMap();
    List<String> keys = Arrays.asList( { "1", "2", "3" } );
    for(String key : allLobsChkBx.keySet()) {
        if(keys.contains(key)) {
            inScopeLobs.put(key, allLobsChkBx.get(key));
        }
    }
    return inScopeLobs;
}

为什么不使用Integer而不是String,因为您只存储数字。

关于java - 将映射键与字符串列表进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16413143/

相关文章:

java - 当 v$session.osuser 值超过 30 个字符时处理 JDBC 连接

java - 查找 n 个字母的所有排列的算法

python - 如何检查一个 pandas 列中列表中的所有元素是否存在于另一 pandas 列中

java - TreeMap 的不可修改 View 是否保留键顺序?

java - 由于抛出异常,测试失败

javascript - 使用 javascript 和 python 在单节点中进行 Riak MapReduce

java - 如何将从数据库中检索到的字符串值与程序中定义的字符串值进行比较

c# - 如何正确比较 C# 中的十进制值?

Ruby,从 Date.day_fraction_to_time 获取小时、秒和时间

java - 在 Spring Boot 中使用 Junit 模拟其他类的对象并返回期望的值