【发布时间】:2014-06-18 12:28:37
【问题描述】:
我有一个键和值是“字符串”的哈希图。我想通过忽略密钥中“$”之后的字符串来检查特定密钥是否存在。
Hashmap 包含 'acctId$accountId'、'acctId$desc'、'acctId$crncyCode' 等键。
Iterator itx = uiToSrvFldMapList.entrySet().iterator();
if(uiToSrvFldMapList.containsKey(cellId)){
String sSrvFld = (String) uiToSrvFldMapList.get("acctId");
System.out.println("sSrvFld :: " +sSrvFld);
【问题讨论】:
-
为什么不直接使用堆叠地图?像
Map<String, Map<String,String>>这样的东西会让访问变得更容易和更快。然后您可以检查myMap.get(firstPart).get(secondPart)。当然,如果第一个不是null,您必须检查。这对您的运行时间也会更好。 -
使用 if(uiToSrvFldMapList.containsKey(cellId.split("$")[0])){
-
这种结构不容易,基本上要对整个表进行线性搜索。
标签: java