2017-02-02 5 views
0

У меня есть listAA объект со специальным заказом из баз данных (сортировка по столбцу спросите).Сохранять специальный заказ/сортировать по карте

Теперь я получаю связанные данные для каждого объекта из этого списка того же порядка, что и в listAA. Когда я пытаюсь TreeMap или HashMap, я теряю этот особый вид. Могу ли я реализовать Comparator, потому что у меня нет значений в специальном порядке на этой карте (TreeMap).

Пример:

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

Теперь мне нужна карта с ключом порядка: 2,3,1,10 и не 1,2,3,10. Как я могу это достичь?

Мой код, чтобы попытаться реализовать компаратор, но я не могу сравнивать значения внутри карты, потому что у меня нет логики для этого.

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); 
      } 
    } 
); 

ответ

2

Вы можете использовать LinkedHashMap:

хэш-таблицу и связанную реализацию списка интерфейса Map, с предсказуемым порядком итерации. [...], который, как правило, порядок, в котором ключи были вставлены в карту

(курсив мой)

Смежные вопросы