我正在读下面的数据-
Year, No, Name,
2009, 1, ABC
2009, 2, PQR
2009, 3, XYZ
2010, 1, BCD
2010, 2, DEF
2010, 3, JKL
2011, 1, FGH
2011, 2, IJK
2011, 3, LMN这是一个样本,有数千个这样的类型。我需要在JList中显示唯一的Year值,并且对于所选的Year,我必须提供一个CheckBox,如果选择它,将显示按No排序的Name,否则将按Name排序。
发布于 2011-12-07 16:58:49
您需要的类似于Map,键将是Year,值将是No和Number的列表(您需要创建自己的类)。
然后您需要创建两个Comparator,一个是基于Name的,另一个是No。因此,选中复选框时,使用Name-based比较器对列表进行排序,未选中时,使用No-based比较器对列表进行排序。
发布于 2011-12-07 16:59:34
Map<String, Set<YourStruct>> 以年份为关键?YourStruct - bean,持有年份,编号和名称。您可以使用Collections.sort()进行排序。
发布于 2011-12-07 17:24:03
我想你也需要对年份进行排序,所以作为顶层使用TreeMap和year作为键,值将是您的类包装两个TreeSets - on表示No,一个表示Name -它们将通过向其添加值进行排序,而且它们不允许重复。
或者不创建包装类并使用两个TreeMaps -这并不是很大的区别。
https://stackoverflow.com/questions/8412541
复制相似问题