按值排序的地图

时间:2013-01-22 19:05:12

标签: java sorting data-structures map dataset

我现在有了这个,但是当键发生冲突时我遇到了问题(我通过在double中添加一个非常小的数字来修复。但这不能很好地工作(我真的不想添加小数字)

 TreeMap<Double, String> statisticAndTitle = new TreeMap<Double, String>(Collections.reverseOrder());

字符串是唯一的,所以如果我有:

  • D 1.1
  • B 2.0
  • C 4.0
  • A 1.1
  • E 3.3

我希望它排序为D1 A1 B2 E3 C4(列表中的出现顺序(非字母顺序)很重要,如果D1在列表中的A1之前,它也应该在地图中这样(这意味着我可以'我只是用正常的排序算法对第二列进行排序,因为它没有考虑列表中的位置)

有关如何使用地图或其他方式实现的任何想法?

2 个答案:

答案 0 :(得分:1)

  

我想将它排序为D1 A1 B2 E3 C4(列表中的出现顺序(非字母顺序)很重要。

列表维护订单。

创建一个包含String字母和Double编号的类。实现Comparable并在类中编写compareTo方法。

创建并加载类的列表。

对列表进行排序。

答案 1 :(得分:1)

使用LinkedHashMap。它记得添加的顺序。