Лучшая коллекция для хранения двух типов данных? - PullRequest
0 голосов
/ 21 января 2020

Мне было интересно, как сохранить объект и сохранить порядок, в котором объект был добавлен, например, в список массивов, но подойдет любая коллекция.

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

В настоящее время я использую два списка массивов, один для хранения объектов в добавленном порядке и один для хранения объектов в отсортированном порядке, но я чувствую, как это неэффективно.

Ответы [ 2 ]

2 голосов
/ 21 января 2020

U может использовать вашу собственную реализацию LinkedList. Создайте класс с атрибутами, которые вы хотите сохранить.

Вот пример кода для реализации пользовательского LinkedList.

public class FooLinkedList {
    String itemName; // anything you want to store
    FooLinkedList next;

    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    public FooLinkedList(String itemName, FooLinkedList next) {
        this.itemName = itemName;
        this.next = next;
    }
}
2 голосов
/ 21 января 2020

Первоначальный ответ, который большинство людей даст вам, - HashMap, но в этом случае он будет злоупотреблять структурой данных. Вторым предположением будет List>, но, хотя он не будет злоупотреблять структурой, он все равно будет некорректным ОО-кодом.

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

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