По определению HashMap
не сортируется, так как насчет SortedMap
? Реализация SortedMap
- это TreeMap
, которая сортирует записи по ключам (или Comparator
).
Я считаю, что это вам подходит, так как ваша карта имеет целые числа как ключи.
Редактировать: Вы можете использовать List
или любую другую коллекцию, подходящую вам в вашем адаптере. Например, сохраните ссылку на идентификаторы и альбомы, которые представляют собой данные, которые вы хотите отобразить через адаптер.
private int[] ids;
private Album[] albums;
По мере передачи данных (включенных в карту) на ваш Затем вы можете извлечь эти данные и поместить их в контейнеры массива, чтобы использовать индекс. Например,
public MyAdapter(Map<Integer,Album> data){
ids = new int[map.size()];
albums = new Album[map.size()];
int i = 0;
for (Map.Entry<Integer,Album> e : map.entrySet()){
ids[i] = e.getKey();
albums[i++] = e.getValue();
}
}
Теперь, когда у вас есть массивы, вы также можете сортировать их, если хотите, и если вы хотите получить третий альбом и его идентификатор, все, что вам нужно сделать, это
int id = ids[2];
Album album = albums[2];