如果我有一个带有这样一个键的HashMap:
[pubDate, title, link]和这样的值(例子):
[Thu, 03 Jan 2013 21:50:02 +0100, Transferts - YBX : ''Je change de dimension'', http://www.link.fr/info/link_informations.html]
Run Code Online (Sandbox Code Playgroud)
我可以检索链接http://www.link.fr/info/link_informations.html吗?码:
for (int i = 0; i < nl.getLength(); i++) {
// creating new HashMap
map = new HashMap<String, String>();
Element e = (Element) nl.item(i);
// adding each child node to HashMap key => value
map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));
map.put(KEY_LINK, parser.getValue(e, KEY_LINK));
map.put(KEY_DATE, parser.getValue(e, KEY_DATE));
//map.put(KEY_DESC, parser.getValue(e, KEY_DESC));
// adding HashList to ArrayList
menuItems.add(map);
}
Run Code Online (Sandbox Code Playgroud)
ndm*_*m13 36
我刚遇到同样的问题,决定将我的密钥映射到一个条目.这允许由地图提供的相同索引特征,同时具有与键相关联的多个属性.我认为这是一个更简洁的解决方案,可以创建一个单独的类或嵌套映射.
Map<String, Entry<Action, Boolean>> actionMap = new HashMap<String, Entry<Action, Boolean>>();
actionMap.put("action_name", new SimpleEntry(action, true));
Run Code Online (Sandbox Code Playgroud)
要在以后使用这些数据:
Entry<Action, Boolean> actionMapEntry = actionMap.get("action_name");
if(actionMapEntry.value()) actionMapEntry.key().applyAction();
Run Code Online (Sandbox Code Playgroud)
我个人使用的是一个命名函数的地图.通过名称选择函数后,将运行该函数,并且布尔值将确定在处理中是否需要清理.
SJu*_*n76 22
您创建一个对象,该对象将键的所有三个子键都保存为属性.确保落实equals和hashCode正确.
public class MyKey {
public MyKey(String subkey1, String subkey2, String subkey3) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
使用此类对象作为地图的关键字:
Map<MyKey, String> myMap = ....;
myMap.get(new MyKey("Thu", "03 Jan 2013 21:50:02 +0100", "Transferts - YBX"));
Run Code Online (Sandbox Code Playgroud)
玩得开心!
| 归档时间: |
|
| 查看次数: |
67894 次 |
| 最近记录: |