list转换成MAP 求各位大神啊!!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了list转换成MAP 求各位大神啊!!!相关的知识,希望对你有一定的参考价值。
@Bind(id = "usersDataGrids", attribute = "dataProvider")
protected GridDataProvider getDataProvider()
return new GridDataProvider()
@Override
public Object[] getElements()
// if (usersConditionMap != null && usersConditionMap.size() >
// 0)
try
/**把这转成map咋弄啊!!!**/ return usersRoleRelationService.findRole(usersConditionMap, start, 20).toArray();
catch (BusinessException exception)
return new Object[] ;
//
调的方法是:
@Override
public List findRole(Map conditionMap, int first, int pageSize)
List list = getHibernateDao().find("from UsersRoleRelation ur join fetch ur.users join fetch ur.role ", null, first,
pageSize);
return list;
}
List[ object1, object2, object3,....]
而Map的结构是:
Map[ <key1,object1>,<key2,object2>,<key3,object3>,.....]
List就是保存了一组object,而Map不光保存object,还给每个object添加了一个唯一的Key用来寻找这个object。所以才有数据结构:List<Object> 和 Map<Key,Object>;
你这里想要返回map,
需要把这段代码修改了:
return usersRoleRelationService.findRole(usersConditionMap, start, 20).toArray();
catch (BusinessException exception)
return new Object[] ;
修改成先遍历list,生成map,然后return;
Object[] objs=usersRoleRelationService.findRole(usersConditionMap, start, 20).toArray();
Map returnMap=new HashMap();
for(Object obj : objs)
Object key=....; //这里的key是你用来查找相应object的key,可以使Integer,Double等,也可以是任意一个object,key是唯一的。
returnMap.put(key,obj);
return returnMap;
catch (BusinessException exception)
return null;
还有,你的方法是返回GridDataProvider 这样一个东西,你返回map肯定不对啥。 参考技术A 简单说:比如你的List是一个SQL语句得来的如select ID as id,NAME as name .... from Table_1 where Table_1.ID=?? 的话 返回的是一个List ;List a=new ArrayList();
你可以
List a;
Iterator it = a.iterator();
while(it.hasNext())
Map map = (Map) it.next();
String n=(String)map.get("name");//取出NAME了
这样 List中的值 可以放到Map里,可以用循环的方法取出值,如上面注释部分,写的可能不太清楚 参考技术B jxkhd
682 参考技术C guw
213
以上是关于list转换成MAP 求各位大神啊!!!的主要内容,如果未能解决你的问题,请参考以下文章