Сортировка HashMap с 2 полями - PullRequest
0 голосов
/ 06 июля 2011

У меня есть хэш-карта с 8 полями.Среди этих 2 есть id и idseq.Оба целых числа.Может быть больше чем один подобный idseq, но не для одного идентификатора.Можно ли отсортировать эту карту заговора на основе этих 2?

Ответы [ 3 ]

1 голос
/ 06 июля 2011

Создайте ключ, содержащий эти два целочисленных значения, и используйте его в качестве ключа для вашей карты. Сделайте этот ключ Comparable и реализуйте там логику сортировки.

Примерно так:

class MyCustomKey implements Comparable<MyCustomKey> {
    final int id;
    final int idSeq;

    public MyCustomKey(int id, int idSeq) {
        this.id = id;
        this.idSeq = idSeq;
    }

    public int getId() {
        return this.id;
    }

    public int getIdSeq() {
        return this.idSeq;
    }

    @Override
    public int compareTo(MyCustomKey o) {
        // your compare logic goes here
        return -1;
    }
}

Затем вы можете использовать его в качестве ключа для вашей карты, предпочтительно TreeMap , если он должен быть отсортирован.

0 голосов
/ 07 июля 2011

Мы можем использовать древовидную карту следующим образом:

TreeMap<Integer,DRG> sortedMap = new TreeMap<Integer,DRG>();

 sortedMap.putAll(hashmap);

Treemap позаботится обо всем остальном. Порядок значений, представленных в базе данных, можно восстановить с помощью древовидной карты.

0 голосов
/ 06 июля 2011

Вместо этого используйте TreeMap с пользовательским компаратором, который вы должны передать его конструктору.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...