Как я могу создать Multimap в Java на Android - PullRequest
6 голосов
/ 05 ноября 2010

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

Ответы [ 3 ]

17 голосов
/ 05 ноября 2010

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

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

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

Другой вариант заключается в использовании реализаций библиотеки Guava *1009* * Multimap .

5 голосов
/ 05 ноября 2010

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

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

2 голосов
/ 11 декабря 2015

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

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

...