按地图保持特殊订单/排序

时间:2017-02-02 10:22:38

标签: java sorting dictionary comparator treemap

我有来自数据库的特殊订单的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);
           } 
    }
);

1 个答案:

答案 0 :(得分:3)

您可以使用LinkedHashMap

  

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

(强调我的)