检查Map中的值

时间:2014-06-19 09:42:41

标签: java map

我有一张地图,其中我使用NAME-GROUP形式保存值。

在做一些操作之前,我需要知道Map是否包含特定的组, 例如:我需要检查包含group1的{​​{1}}的值。

我试图这样做:

Mark-group1

我在搜索时无法提供名称,因为同一组可能有不同的名称。

但它找不到值,因为看起来这个函数只是寻找整个值字符串而不仅仅是它的一部分。

所以,有任何方法可以实现这一目标,或者我是否需要改变我关注代码的方式。

更新 -

这是我的地图:

if (checkList.containsValue(group1)) {
    exists = true;
}

我从数据库加载一些值,然后将它们设置为Map:

Map<Integer, String> checkList = new HashMap<Integer, String>();

关系列的值为:if (c.moveToFirst()) { int checkKey = 0; do { checkKey++; checkList.put(checkKey, c.getString(c.getColumnIndex(TravelOrder.RELATION))); }while(c.moveToNext()); } mark-group1jerry-group1等等... 因此,地图将具有lewis-group2等结构......

我需要检查地图中是否有任何包含字符串[1, mark-group1]的值,例如,我不关心名称,我只需要知道该组是否存在。< / p>

1 个答案:

答案 0 :(得分:0)

如果要检查包含字符串作为子字符串的任何值,则必须执行以下操作:

for (String value : yourMap.values()) {
    if (value.contains(subString)) {
        return true;
    }
}
return false;

顺便说一下,如果地图中的值确实有两个不同的部分,我建议将它们存储在一个包含两个字段的结构中,这样就可以轻松搜索它们。