2013-11-08 2 views
3

В моем коде я использую набор перемеженных LinkedHashMaps внутри друг друга, как показано ниже. Код в порядке и дает мне результат, который я хочу, за исключением того, что он автоматически удаляет дубликаты. Я не мог узнать, как я могу использовать TreeMap или Set, чтобы сохранить дубликаты.Дубликаты в LinkedHashMap

LinkedHashMap<String, LinkedHashMap<Integer, LinkedHashMap<String, Vector<String>>>> 
dataAll =new LinkedHashMap<String, LinkedHashMap<Integer, LinkedHashMap<String, 
Vector<String>>>>(); 
+2

Повторяющийся ключ, значение или комбинация? –

+4

'Set' не позволяет дублировать элементы, а' Map' заменяет значения для дубликатов ключей. Вот как они выглядят, поэтому почему бы не попробовать использовать ArrayList? – SudoRahul

+20

О, Боже мой, какой кошмар, который ты поддерживаешь там. Использовать пользовательские классы вместо карт карт списков карт ... –

ответ

4

LinkedHashMap по-прежнему представляет собой структуру данных карты. Он отображает уникальный ключ в значение. Если вы назначаете два разных значения ключа, второе значение просто заменит первое значение, присвоенное этому ключу.

Также представьте, почему вам нужна карта дублированного ключа? Единственная цель Карты - обеспечить взаимную привязку между парой ключ/значение. Он не поддерживает отношения «один к многим».

Если у вас есть карта ключа со списком значений, использовать что-то вроде:

LinkedHashMap<String, List<..>> 

Это позволяет иметь один ключ карты в списке значений.

+0

. Моя проблема связана не с ключами и ключевыми дубликатами (как я даже не хочу их). при сохранении значений во внутреннюю связанную карту. Я не хочу, чтобы дубликаты были удалены. – Ramin

+0

Какой из них у вас есть 2 внутренних карты ...? –

+0

Извините, когда вы говорите «вы не хотите, чтобы дубликаты были удалены», вы имеете в виду «вы не хотите, чтобы дублированные ключи были удалены»? Или вы имеете в виду «вы не хотите удалять дублирующиеся значения». – KKKCoder

Смежные вопросы