2011-02-17 142 views
0

我想避免使用for循环迭代通过HaspMap来查找一个键,然后拿起对应于该键的值......任何人都可以帮助我实现相同的...? 下面给出的是我的代码使用for循环,我想用的containsKey()函数使用哈希映射

for (Entry<Long, Long> entry : sessionTimeStampHash.entrySet()) 
//if(sessionTimeStampHash.containsKey(sessionID)) 
{ 
    if (entry.getKey().equals(sessionID)) 
    { 
     sessionTimeStamp = entry.getValue(); 
    } 
} 
+5

我建议你阅读关于Java的一些基本教程。 – 2011-02-17 10:06:04

回答

10

你并不需要一个循环都更换。地图是联想集合,这意味着它们是为快速基于键的查找而设计和优化的。一张地图,就是要这样使用:

sessionTimeStamp = sessionTimeStampHash.get(sessionID); 
if (sessionTimeStamp != null) { 
    // do something with sessionTimeStamp 
} 

或者使用containsKey()

if (sessionTimeStampHash.containsKey(sessionID)) { 
    sessionTimeStamp = sessionTimeStampHash.get(sessionID); 
    // do something with sessionTimeStamp 
} 

Java Tutorial更多地了解地图和其他收藏品。

2
if(sessionTimeStampHash.contains(sessionID) { 
    sessionTimeStamp = sessionTimeStampHash.get(sessionID); 
} else { 
    //Create session 
    sessionTimeStamp = getSessionTimeStamp(); 
    sessionTimeStampHash.put(sessionId, sessionTimeStamp); 
} 

More