Существует ли структура данных для списка, упорядоченного по значению? - PullRequest
0 голосов
/ 22 марта 2011

У меня есть JTable, который показывает 10 лучших результатов игры. Структура данных выглядит следующим образом:

    // {Position, Name, Score}
Object[][] data = {
    {1, "-", 0},
    {2, "-", 0},
    {3, "-", 0},
    {4, "-", 0},
    {5, "-", 0},
    {6, "-", 0},
    {7, "-", 0},
    {8, "-", 0},
    {9, "-", 0},
    {10, "-", 0}
};

Я хочу иметь возможность добавить новый счет в этот массив в правильном порядке (поэтому, если бы он был третьим по величине, он был бы помещен в индекс 2). Затем я снова урежу этот список до топ-10 и обновлю таблицу.

Я знаю, что это тривиально сделать, просматривая и проверяя, но я хотел бы знать, существует ли подходящая структура данных, которая лучше подходит для данных, упорядоченных по значению? Или простой двумерный массив единственный / лучший?

Ответы [ 2 ]

5 голосов
/ 22 марта 2011

Используйте TreeSet с пользовательским компаратором.

Кроме того, вам не следует работать с многомерными массивами, использовать Карты (Имя -> Оценка) или пользовательские объекты

3 голосов
/ 22 марта 2011

Эй, если ваш массив отсортирован, вы можете использовать метод Collections.binarySearch() или Arrays.binarySearch(), чтобы указать, по какому индексу выполнить вставку. Этот метод работает так, чтобы выполнить бинарный поиск по существующему элементу, и если элемент не может быть найден в коллекции, он вернет значение, связанное с точкой вставки.
Больше информации здесь Collections.binarySearch

...