假设以下是查询结果:
Metrix No. Org Bus unit Juris Title
821 ABC ABC Business AZ AZ cleanup
923 PQR PQR Business CT CT Cleanup
923 PQR PQR Business N4 N4 Cleanup
923 PQR PQR Business N4 N4 add page
923 PQR PQR Business N3 N3 Cleanup
我想要结果页面如下所示:
Corp. Entity Customer Segment State Project Description
ABC ABC Business AZ AZ Cleanup
PQR PQR Business CT,N4,N3 CT Cleanup
查询存储在bean中的结果。所以我们有一个arraylist,我们在每行中获取数据。我想过使用Map但它一次只能存储2个值,我需要4个值对应每个记录。
有人可以为我建议一些解决方案吗?
由于
答案 0 :(得分:0)
基本上,您可以使用Map<KeyType,List<ValueType>>
解决此类问题,并且每次找到给定键的值时,请将其添加到值列表中。
第一次添加值时,需要注意创建列表并将列表添加到地图中。
如果您不介意使用库并且不想自己动手,那么已经存在此实现。例如,Guava的Multimap实现(https://google.github.io/guava/releases/19.0/api/docs/com/google/common/collect/Multimap.html)
更新:如果您可以影响SQL和结果数据结构,另一个选择是让数据库负责聚合。例如,在MySQL中,有一个group_concat
函数可以将一个组中的值聚合到一个列中。
答案 1 :(得分:0)
感谢您的投入,但使用MAP对我来说不可行。
所以我制作了一种采用“组织”的方法。 ,整个记录和索引(从记录的迭代开始)作为输入参数,并给出STATE(如结果页中所述)作为输出。
我还创建了一个Bean,它只包含结果页面所需的那些值。我重复了主要的记录列表,每当得到新的组织时,我都会将详细信息传递给方法,该方法为我提供了组合状态列表。然后将这些值(公司实体,客户细分,州,项目描述)输入新的Bean。
现在在显示数据时,我通过新Bean的Array迭代它,它只有4个值。