将地图键与字符串列表进行比较 [英] Compare map key with a list of strings

查看:166
本文介绍了将地图键与字符串列表进行比较的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可以与java中的字符串arraylist进行比较

can map be compare with arraylist of string in 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;
    }

这是一个正确的方法吗?

is this a correct way ?

推荐答案

您可以使用 keySet()。此方法返回 Set 的键(更多信息,关于地图的Oracle文档)。这意味着在整个地图上迭代的开销更少。在下面的情况下,您只会请求匹配键的值。

You can make use of keySet(). This method returns a Set of keys (for more info, Docs from Oracle about Map). This means less overhead than iterating over your whole map. In the following case you'll only request values of matching keys.

还有一些其他错误,如双分号,不必在初始化时定义地图。

There are some other faults like a double semicolon and since JDK7 you don't have to define your map when initializing.

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 ,因为您只储存数字。

Why aren't you using an Integer instead of a String, since you're only storing numbers.

这篇关于将地图键与字符串列表进行比较的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆