Java 哪个收藏可以这样做?

Java 哪个收藏可以这样做?,java,collections,Java,Collections,我正在阅读以下数据- 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, 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中显示唯一的
年份
值,对于所选的
年份
,我必须给出一个复选框,如果选中,将显示
名称
排序,否则按
名称
排序

您需要的看起来像一张
地图
,键是
年份
,值是
编号的列表(您需要创建自己的类)


然后需要创建两个
比较器
,一个基于
名称
,另一个是
。因此,选中复选框时,使用基于<代码>名称<代码>的比较器对列表进行排序,未选中时,使用基于<代码>否<代码>的比较器对列表进行排序。

您需要的看起来像一个<代码>地图
,键将是<代码>年份,值将是<代码>否和<代码>编号的列表(您需要创建自己的类)

Map<String, Set<YourStruct>> 
然后需要创建两个
比较器
,一个基于
名称
,另一个是
。因此,当选中复选框时,您可以使用基于
名称的比较器对列表进行排序,如果未选中,则使用基于
否的比较器对列表进行排序。

Map
Map<String, Set<YourStruct>> 
以年为关键?YourStruct-bean,持有年份,编号和名称。您可以使用Collections.sort()进行排序。

Map

以年为关键?YourStruct-bean,持有年份,编号和名称。您可以使用Collections.sort()进行排序。

我想您也需要对年份进行排序,因此作为顶级使用TreeMap,以年份为键,值将是您的类包装两个树集-打开表示否,一个表示名称-它们将通过向其中添加值进行排序,并且它们不允许重复


或者不要创建包装类并使用两个树状图-这没有太大区别。

我想您也需要对年份进行排序,因此作为顶级使用树状图,以年份为键,值将是您的类包装两个树状图-为否,一个为名称-它们将通过添加值进行排序,此外,他们不允许重复


或者不要创建包装类并使用两个树形图-这没有太大区别。

是否要创建一个类,例如
Baby
,该类有三个字段(
Year
No
,和
Name
)并将其实例放入例如ArrayList?是否要创建一个类,例如具有三个字段(
,和
名称
)的
婴儿
),并将其实例放入例如ArrayList?不,我不需要对年份进行排序。JList中已经填充了不同的年份列表。因此,根据这个JList值ie Year,我需要检索另一个JList中的名称。现在,检索名称的顺序应该基于名称或否。从上面的示例中可以看到,默认选项为否。我看到,没有仔细阅读该选项-因此,您可以在顶层使用任何HashMap(如果需要同步访问,则使用HashTable),并在需要按否(键)排序名称时使用TreeMap不,我不需要几年的时间来整理。JList中已经填充了不同的年份列表。因此,根据这个JList值ie Year,我需要检索另一个JList中的名称。现在,检索名称的顺序应该基于名称或否。从上面的示例中可以看到,默认选项为否。我看到,没有仔细阅读该选项-因此,您可以在顶层使用任何HashMap(如果需要同步访问,则使用HashTable),并在需要按否(键)排序名称时使用TreeMap@wyz-是的,使用2个比较器,我可以得到必要的输出。。非常感谢……)@wyz-是的,使用2个比较器,我可以得到必要的输出。。非常感谢……)