Как я могу создать Multimap в Java на Android

Где я могу найти реализацию multimap для Java, которая будет работать на Android без необходимости включать какие-либо другие классы и т. д. Все реализации, которые я нашел, требуют других вещей, которые требуют других вещей, и это быстро становится беспорядочным. Я переношу проект с С++ и новичок в java (а также в этом проекте, поэтому я стараюсь, чтобы все было как можно более идентичным, пока он работает), поэтому любые ссылки или примеры были бы замечательными.


person ima747    schedule 05.11.2010    source источник


Ответы (3)


Вы можете использовать карту и список для создания мультикарты. Допустим, вы хотите связать целое число со списком типа класса T. Используйте следующий код:

Map<Integer, List<T>> myMultiMap = new HashMap<Integer, List<T>>();

Это может стать грязным, но это должно дать вам то, что вы ищете.

Другой вариант — использовать Guava. com/svn/trunk/javadoc/com/google/common/collect/Multimap.html">Multimap.html">Multimap реализации.

person thattolleyguy    schedule 05.11.2010
comment
Я смотрел на Guava, но его реализация с несколькими картами выглядит так, как будто для нее требуются некоторые другие классы, которые, в свою очередь, требуют других... Я не хочу устанавливать и включать кучу новых вещей, я просто хочу простую мультикарту, которая будет себя вести как это делается в C++ для упрощения переноса. Однако спасибо за предложения, если мне не удастся найти что-то достаточно чистое, я могу реализовать карту/список, как вы рекомендуете, но тогда мне нужно создать некоторое управление этой структурой... - person ima747; 06.11.2010
comment
Список на карте оказался лучшим решением для моих нужд. - person ima747; 17.11.2010

Похоже, вы ищете библиотеку Apache Commons Collection. У вас есть класс MultiMap. Я еще не тестировал его сам, поэтому я не могу обещать, что он работает, но он выглядит подходящим для вашего проекта.

Вы не найдете функцию MultiMap в Java, поэтому у других есть написанные библиотеки, содержащие ее. Однако вы можете попытаться реализовать его самостоятельно, если ваш уровень знаний достаточно высок, но для этого потребуется некоторый опыт работы с Java. Так что лучше всего попытаться научиться использовать и, при необходимости, адаптировать библиотеки для их использования на Android.

person Octavian A. Damiean    schedule 05.11.2010

Если вам небезразличен размер кода, мы только что добавили мультикарты в нашу библиотеку утилит: http://greenrobot.org/2015/12/11/multimaps-in-greenrobot-common-2-2/

Размер jar намного ниже 100 КБ, что неплохо, если учесть ограничение метода Android в 65 КБ.

person Markus Junginger    schedule 11.12.2015