我有一张地图,其中我使用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-group1
,jerry-group1
等等...
因此,地图将具有lewis-group2
等结构......
我需要检查地图中是否有任何包含字符串[1, mark-group1]
的值,例如,我不关心名称,我只需要知道该组是否存在。< / p>
答案 0 :(得分:0)
如果要检查包含字符串作为子字符串的任何值,则必须执行以下操作:
for (String value : yourMap.values()) {
if (value.contains(subString)) {
return true;
}
}
return false;
顺便说一下,如果地图中的值确实有两个不同的部分,我建议将它们存储在一个包含两个字段的结构中,这样就可以轻松搜索它们。