ArrayMap альтернативный сохраняющий порядок вставки и имеет методы get () и valueAt () - PullRequest
0 голосов
/ 05 декабря 2018

Это для Android Studio Java.Я использовал ArrayMap, потому что мне оба нужны методы get(Object key) и valueAt(int index).Но ArrayMap не сохраняет порядок вставки.

Так что я попробовал LinkedHashMap, потому что это сохраняет порядок вставки.Но LinkedHashMap не имеет метода valueAt(int index).

Есть ли карта, которая сохраняет порядок вставки и имеет оба метода get(Object key) и valueAt(int index)?

1 Ответ

0 голосов
/ 05 декабря 2018

Поздравляю с первым сообщением!

Во-первых, несколько советов - это не столько проблема Android, сколько проблема с Java, поэтому пометка этого вопроса на Android может сделать его более заметнымЭто немного ошибочно.

Во-вторых, если вы помечаете Java, вы также можете попробовать пометить определенную версию Java (Java 6/7/8 и т. Д.), Которая должна быть найдена в вашем файле build.gradle ...

В-третьих, пожалуйста, убедитесь, что вы ищете, и убедитесь, что вы просматриваете предложенные SO аналогичные вопросы, поскольку большинство вопросов, таких как этот, уже задавались и на них давались ответы ...


Что касается вашего вопроса, то нет ни одного экземпляра дерева классов Map, который бы имел индексируемые методы.См. https://docs.oracle.com/javase/7/docs/api/java/util/Map.html и его потомки ... также https://docs.oracle.com/javase/tutorial/collections/interfaces/map.html.

Однако библиотека Apache Commons имеет реализацию LinkedMap, которая имеет метод indexOf() ... хотя это может бытьтяжеловесный, чтобы добавить для такого варианта использования?

Однако есть способы сделать это самостоятельно, главным образом, которые включают в себя принудительное это, оборачивая / разворачивая в другие структуры данных, и они, как правило, неэффективны (O(n))...

Вот несколько сообщений об этом:

Как вы можете видеть, производительность и многословность являются здесь потенциальными проблемами ...

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

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