在我的应用程序中,我有一个函数可以提供这种类型的数据:
年(int)和与该年相关联的字符串(年份可以关联更多字符串):
2016 - “1A2B3C”
2009 - “8DF56R”
2009 - “8E4I1J”
2013 - “P6F2T8”
2009 - “4K6J5U”
我想为每个年份创建一个String数组,而不是按年份排序。像这样:
2009 - “8DF56R”“8E4I1J”“4K6J5U”
2013 - “P6F2T8”
2016 - “1A2B3C”
年份应该是指数, 我该如何检索输出?
对于noob问题我很抱歉,但我尝试了数组,ArrayList和Map数组,但我可能会遗漏一些东西。
答案 0 :(得分:6)
您应该使用A{2,3}
这样的Map
:
List
您可以填写与Map<Integer, List<String>> = new TreeMap<>();
密钥相关联的List
(日期)。 Integer
根据自然顺序对您的密钥进行排序(如果我没记错的话,默认情况下会提升)。
如果您的默认设置不合适,您也可以创建自定义TreeMap
答案 1 :(得分:0)
另一个解决方案是创建一个包含您的信息(年,字符串等)并实现Comparable接口的Class T.方法compareTo(T)将比较年份。通过这种方式,您可以处理更多信息。 例如,可以将此类型的对象插入到SortedSet中,或者与Collections.sort或Java8 Stream一起使用的List。