我有listAA对象,该对象来自数据库(按columnA ask排序)有特殊顺序。

现在,我将从列表中获取与每个对象相关的数据,顺序与listAA相同。
当我尝试TreeMapHashMap时,我会失去这种特殊的排序。
我是否可以实现Comparator,因为在此映射(TreeMap)中不再有按正确的特殊顺序排列的值。

例:

listAA has {
    2,  "x";
    3,  "a";
    1,  "b";
    10, "c"
}


现在,我需要一个键顺序为2,3,1,10而不是1,2,3,10的地图。
我该如何实现?

我的代码是,尝试实现比较器,但是我无法在map中比较值,因为我对此没有任何逻辑。

SortedMap<ObjectA, List<ObjectB>> objectAWithObjectBvalues = new TreeMap<ObjectA, List<ObjectB>>(
    new Comparator<long>()
    {
           public int compare(long o1, long o2)
           {
               //i dont know special order anymore here
               return o1.compareTo(o2);
           }
    }
);

最佳答案

您可以使用LinkedHashMap


  Map接口的哈希表和链表实现,具有可预测的迭代顺序。 [...]通常是将钥匙插入地图的顺序


(强调我的)

关于java - 保持特殊订单/按 map 排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41999614/

10-11 03:42