[英]Sorting data in Java based on given hierarchy and given level
我试图找出在 Hashmap 中对提供的数据集进行排序的方法。
数据需要按第一列中的所有周、产品和所有商店的渠道内的数据进行排序。 Stores 被映射到一个特定的通道,因此在对数据进行排序时,只有 store 应该在一个通道内而不是跨所有通道排列。 我可以在另一个哈希图(渠道,商店映射)中获得这种关系输出需要列出产品,商店,排名
我需要一些起点来解决这个问题,任何例子都会有所帮助。
示例数据集:
w20150608,product1,str2,0.45003933910307
w20150615,product1,str2,0.46734854445319
w20150622,product1,str2,0.48790322580645
w20150629,product1,str2,0.41114558437124
w20150706,product1,str3,0.44112494989831
w20150713,product1,str3,0.46425188901919
w20150720,product1,str3,0.46339533571842
w20150727,product1,str1,0.4736739753277
w20150817,product1,str1,0.44352216102806
w20150824,product1,str1,0.43260774543229
w20150629,product1,str1,0.082229116874248
w20150706,product1,str1,0.088224989979662
w20150713,product1,str1,0.092850377803839
w20150720,product1,str4,0.092679067143684
w20150727,product1,str4,0.09473479506554
w20150803,product1,str4,0.1178756884343
w20150810,product1,str1,0.10616749715884
w20150817,product1,str1,0.088704432205613
w20150824,product1,str1,0.086521549086459
w20150831,product1,str1,0.087974955411327
我会从数据中生成一个对象。 因此,对象具有周、产品、存储和价值属性。 现在你把它们放在一个列表中(例如 ArrayList)。
public class CustomComparator implements Comparator<DataObject> {
@Override
public int compare(DataObject o1, DataObject o2) {
if(o1.getWeek() <> o2.getWeek())
return o1.getWeek().compareTo(o2.getWeek());
if(o1.getProduct() <> o2.getProduct())
return o1.getProduct().compareTo(o2.getProduct());
else
return o1.getStore().compareTo(o2.getStore())
}
}
然后使用比较器对列表进行排序。
Hashmap 不能直接排序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.