Использование HashMap в качестве коллекции в Java - PullRequest
4 голосов
/ 19 октября 2011

JAXB не позволяет вам демонтировать уже существующие xml-структуры в HashMap s, если они не совсем так, как JAXB ожидает их.

JAXB хорошо с обработкой, например, LinkedList с и заполняя их.

Я думал о создании интерфейса с методом getKey() и обёрткой вокруг HashMap, которая будет брать все объекты, реализующие этот интерфейс. Затем оболочка может использовать метод getKey() для всех ключевых связанных функций карты. Обертка может легко реализовать интерфейс Collection или List.

Поскольку эта идея не кажется мне новаторской, я предполагаю, что она уже существует в каком-то пакете, но я не гуглюсь правильно для этого ... Может кто-нибудь назвать хорошую библиотеку, которая может это сделать, или Я должен сам это кодировать?

Ответы [ 2 ]

3 голосов
/ 19 октября 2011

Вы можете рассмотреть вопрос о расширении ForwardingList гуавы и использовании HashMap сзади Я не знаю ни одной реализации, которая оставила бы вам только фактическое отображение.
Другой альтернативой является создание JAXB XmlAdapter для адаптации значений к вашей карте. Я думаю, что этот более уместен.

0 голосов
/ 19 октября 2011

Если все, что вы пытаетесь передать информационное содержимое Map как Collection, используйте Map.entrySet().Это дает вам Set<Map.EntrySet<K,V>> объект;т.е. коллекция, элементами которой являются пары ключ / значение Map.Чтобы восстановить Map из коллекции, вам нужно будет выполнить итерацию набора и выполнить put для каждого элемента.

...