Skip to content

Instantly share code, notes, and snippets.

@hungtatai
Created June 11, 2012 08:12
Show Gist options
  • Save hungtatai/2909030 to your computer and use it in GitHub Desktop.
Save hungtatai/2909030 to your computer and use it in GitHub Desktop.
//我需要的用法是 RoadInfo = RoadInfoHash.get(起點).get(終點)
//所以RoadInfoHash是一個雙層的HashMap,RoadInfoHash.get(起點)會得到一個HashMap
while ((mRi = mRiCursor.next()) != null) {
//如果Hash的key內沒這個起點,表示他還沒被new,就new出來,這個if不能拿掉
if( !RoadInfoHash.containsKey(mRi.FNode.NodeId) )
RoadInfoHash.put(mRi.FNode.NodeId, new HashMap<String,RoadInfoPlusEntity>() );
//這個if想拿掉也沒關係,加if是為了不要重複賦值而已
if( !RoadInfoHash.get(mRi.FNode.NodeId).containsKey(mRi.TNode.NodeId) )
RoadInfoHash.get(mRi.FNode.NodeId).put(mRi.TNode.NodeId, mRi);
//路是雙向的,表示這條路允許這麼抓RoadInfo = RoadInfoHash.get(終點).get(起點)
if( mRi.Dir == 0 ){
//跟上面動作一樣,拿終點去看HashMap被new出來沒
if( !RoadInfoHash.containsKey(mRi.TNode.NodeId) )
RoadInfoHash.put(mRi.TNode.NodeId, new HashMap<String,RoadInfoPlusEntity>() );
if( !RoadInfoHash.get(mRi.TNode.NodeId).containsKey(mRi.FNode.NodeId) )
RoadInfoHash.get(mRi.TNode.NodeId).put(mRi.FNode.NodeId, mRi.swapNode());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment