Предполагая, что каждый массив имеет 2 элементов в виде {имя, цвет}, вы можете просто перебирать его
for(String[] combo : some2DArray){
someHashMap.Put(combo[0], combo[1]); // Or swap them, depending on what you
// want to be the key and the value
}
Если вы хотите, чтобы исключить возможность удаления данных, потому что вам посчастливилось иметь два человека с тем же именем существует несколько подходов можно принять:
Держите старые данные
Выполните проверку перед использованием HashMap#put
и посмотреть если ключ уже существует.
Добавляйте данные только в том случае, если они еще не существуют.
Храните новые данные
Используйте текущий код, он будет перезаписывать старое значение.
Назначают новые данные нового ключа
Создать новый ключ на основе собственных правил и вставить это.
Объединить данные в том же ключе
Определите ваш HashMap
, как HashMap<String, List<String>>
и добавить значения в список.
В ретроспективе: это всего лишь конкретная реализация того, что вы сказали в своем вопросе. Насколько я понял вас, это то, что вы хотите. Правильно ли я в этом? –
Да, если бы я сделал это так, как я изначально собирался это сделать, у меня была бы проблема, потому что цикл прошел бы через каждую строку в массиве> Я не был уверен, могу ли я добавить как {name , Color}, без проблем с перекрытием. – user3307265
Мне все еще не совсем понятно, что вы говорите, но если это работает, тогда это хорошо. Следует отметить одно: этот подход предполагает, что каждое имя происходит только один раз. Вы точно знаете, что это так? –