我正在阅读以下数据 -
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,如果选中,它将显示Name
排序No
,否则按Name
排序。
答案 0 :(得分:3)
您需要的内容看起来像Map
,密钥将是Year
,而值将是No
和Number
的列表(您需要创建自己的内容)类)。
然后您需要创建两个Comparator
,一个基于Name
,另一个基于No
。因此,当选中复选框时,您使用基于Name
的比较器对列表进行排序,如果未选中,则使用基于No
的比较器对列表进行排序。
答案 1 :(得分:2)
Map<String, Set<YourStruct>>
以年为关键? YourStruct - bean,持有年份,没有和名字。您可以使用Collections.sort()进行排序。
答案 2 :(得分:1)
我认为你也需要排序年份,所以顶级使用 TreeMap ,以年为关键,值将包含两个 TreeSet - 的on不,一个用于名称 - 它们只是通过向其添加值进行排序,而且它们不允许重复。
或者不创建包装类并使用两个TreeMaps - 这不是一个很大的区别。