list中map对象的取值
有一个list的对象里面存放的都是map的对象
list a{
map(name= 11,tag=1)
map(name= 23,tag=1)
map(name= 12,tag=0)
map(name= 13,tag=1)
map(name= 24,tag=0)
map(name= 71,tag=1)
map(name= 16,tag=0)
}
现在想取a中的name为12的tag值应该怎么操作?
name的值是唯一的。
------解决方案--------------------楼主是用list存放map,但是每个map只存放一个pair?
这样的话何不直接用一个map?
------解决方案--------------------循环取一遍
------解决方案--------------------Map map;
for (int i = 0; i < list.size(); i++) {
map = list.get(i);
if (map.get( "name ").equals( "12 "))
return map.get( "tag ");
}
------解决方案--------------------for(Iterator it = list.iterator(); it.hasNext();) {
Map map = (Map) it.next();
if (map.containsKey( "12 ")) {
return map.get( "12 ");
}
}
------解决方案--------------------list还有key?
------解决方案--------------------public Object getMap(list l){
Map map = new HashMap();
for (int i = 0; i < l.size(); i++) {
map = l.get(i);
if (map.get( "name ").equals( "12 "))
return map.get( "12 ");
}
}
------解决方案--------------------无法保证不会重复,如果能保证,那么这个结构设计有问题。
总之:肯定有地方想法不对路了
------解决方案--------------------循环取了对比name,
不知道这有什么难的...
------解决方案--------------------新手 不知道key值可不可以重复 不可以的话直接找value就行了吧
------解决方案--------------------感觉就如读绕口令
------解决方案--------------------很简单的问题被你们想得乱七八糟
------解决方案--------------------for(Iterator it = list.iterator(); it.hasNext();) {
Map map = (Map) it.next();
if (map.containsKey( "12 ")) {
return map.get( "12 ");
}
}
------------------------------------------
同意vagrant1984同志的看法
------解决方案--------------------看起来这种问题只好通过迭代判断了
------解决方案--------------------不会有这种用法
------解决方案--------------------equal呗