基于JAVA中单列数据的俱乐部查询结果

时间:2016-11-11 10:26:07

标签: java collections

假设以下是查询结果:

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个值对应每个记录。

有人可以为我建议一些解决方案吗?

由于

2 个答案:

答案 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个值。