如何将两个List<Map<String,Object>>合并为一个
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将两个List<Map<String,Object>>合并为一个相关的知识,希望对你有一定的参考价值。
java 中从数据库两个表中分别读出的两组数据 List<Map<String,Object>> records1和List<Map<String,Object>> records2,如何将records2中的数据直接放到records1中数据的后边?
[ qexam=道路交通安全法律、法规和规章, answer=A, analyse=, qimg=, qtitle=未取得驾驶证的学员在道路上学习驾驶技能,下列哪种做法是正确的?]
这是List<Map<String,Object>> records1中的一条记录,分页的话就是需要设置两个参数啊,一个是从哪条开始,一个是页面大小;按照这两个参数确定显示哪些记录
这样可以做成一个类吗?能说详细点么?
恩,刚加进去了,只是得到的新的记录 records3需要分页显示,10条记录为一页,如何遍历获得10条记录?
追答觉得你List里面放个Map总是很拿啥的设计。。。。
你10条记录的意思是 List前10
还是所有记录的前10个。。。
所有记录的话你还不如建个类,,,,用List存个类多好。。。。
我在补充问题中写了,你看一下?
追答class A
String qexam;
String answer;
String analyse;
String qimg;
String qtitle;
然后存List里面就好了。。。
每次选个开头,选个大小多好。。。
你这个东西何必用map存。。。。当然也可以。。。
那你就每次访问List前10个把
里面嵌个Map的遍历,显示出来Map的所有信息
还是没有写出来,就是想遍历这个list中的map。然后找到需要显示的那十条内容,存到另外一个List>里边,该怎么写啊
追答for(Map map : record1)
if(匹配)
record2.add(map):
。。。。。。orz。。。。。所以说写成类多好。。。
如何使用命名查询返回 Map<key,value>?
【中文标题】如何使用命名查询返回 Map<key,value>?【英文标题】:How to return a Map<key,value> using named query? 【发布时间】:2013-06-03 06:13:58 【问题描述】:我使用命名查询返回List<?>
。但现在我有一个要求,我必须返回一个Map<key,value>
,以便我可以使用密钥过滤重复项..
我有一个命名查询来返回产品名称的List<String>
,
<named-query name="FETCH_ACTIVE_PRODUCTS_NAME" >
<query>SELECT product.name FROM Product product
WHERE product.name LIKE :name
</query>
</named-query>
另一个命名查询,用于获取产品描述的 List<String>
,
<named-query name="FETCH_ACTIVE_PRODUCTS_DESC" >
<query>SELECT product.desc FROM Product product
WHERE product.desc LIKE :desc
</query>
</named-query>
另一个按产品名称获取产品 ID 的命名查询
<named-query name="FETCH_ACTIVE_PRODUCTS_ID_BY_NAME" >
<query>SELECT product.id FROM Product product
WHERE product.name LIKE :name
</query>
</named-query>
现在我必须返回一个带有键和值的Map<Long,String>
。键包含产品 ID,值包含产品名称和描述。键不应包含重复值(即重复的产品 ID)..
现在我的问题是如何在命名查询中返回Map<Long,String>
..我没有得到谷歌的帮助...
任何人都有关于如何做到这一点的想法..
【问题讨论】:
你在使用spring-hibernate吗? 是的,我正在使用 spring-hibernate..你知道如何做到这一点吗? 据我所知,您必须通过循环来创建地图。因为在 Hibernate 中查询只返回列表。 【参考方案1】:您可以在代码中执行此操作(调用方方法),方法是遍历列表并将值添加到地图中。
代码sn-p
List <Product> products = new ArrayList<Product>();
// update products list by fetching from db.
Map<Long, String> productDesc = new HashMap<Long, String>();
for(Product prod : products)
if(productDesc.get(prod.getId() == null)
productDesc.put(prod.toString());
如果你必须在很多地方使用它,你也可以把遍历列表并返回地图的sn-p放在产品对象本身中。
【讨论】:
是的,我有这个想法..如果我没有得到一个好的解决方案,这将是我的第二个解决方案..似乎没有使用休眠命名查询获取地图的直接方法。 .我担心它是否会降低性能..因为我将这些查询用于搜索结果.. @Lakshmanan - 因为 hibernate 将您的表格结果映射到对象形式,所以您的查询永远不会返回映射。除非您处理数百万行(在这种情况下您可能应该优化查询/数据),否则您无需担心性能【参考方案2】:请看这篇文章。可能这会对你有所帮助。对于重复删除,您可以在另一个命名查询中尝试嵌套查询。
how to return Map<Key, Value> with HQL
【讨论】:
以上是关于如何将两个List<Map<String,Object>>合并为一个的主要内容,如果未能解决你的问题,请参考以下文章
java 快速将两个list<map> 根据map中某个固定key的value相等整合成一个list<map>
我有两个list,list里面放的是map,我现在需要遍历这两个list,将里面存放的map中key相等的value值相加