日期:2014-05-18  浏览次数:20661 次

如何对sql中查询出的数据进行对其分割然后列举出每项最多的值
比方我查询出的数据是

装订类别-精装@书籍语言-中文@功能类别-社会科学@适合人群-全部@图书类别-科幻
装订类别-精装@书籍语言-中文@功能类别-基础科学@适合人群-学生@图书类别-文艺
装订类别-精装@书籍语言-英文@功能类别-社会科学@适合人群-学生@图书类别-文艺
装订类别-简装@书籍语言-中文@功能类别-社会科学@适合人群-学生@图书类别-文艺

这是一个字段里的

对于这个例子我想最终的结果是得出

A=装订类别-精装 B=书籍语言-中文 C=功能类别-社会科学 D=适合人群-学生 E=图书类别-文艺

这样

求点拨
------解决方案--------------------
遍历,split就不说了,比较的时候,将目标字符串取hashcode,然后放到Map<hashcode,次数>map1中(同时保留另一份Map<hashcode,字符串>map2)。

具体算法,可以考虑在“放”的遍历过程中,顺便作比较(比如初始化一个maxHashCodeValue=-1,当放一个值进去了,就比较maxHashCodeValue与当前map1.get(hashcode),并且记录最大的hashcode为maxHashCode)。最后直接map2.get(maxHashCode)得到对应字符串。

这只是针对A项的,其它类似吧。