Вам не хватает важной детали регистрации, назовите ее XXX3.5
.Это почти наверняка тот случай, когда карта содержит один элемент, потому что каждый вызов map.put()
передает ключ, который считается равным ключу, уже находящемуся внутри карты.
Теперь я ожидал, что эти ключи будутСтроковые имена каналов, которые различны, поэтому ясно, что это ожидание не соответствует действительности.Добавление в журнал сообщения obj2.getString("name")
(или, альтернативно, установка там точки останова), позволит вам увидеть, какие ключи карты на самом деле и почему последующие вызовы перезаписывают существующее отображение.Вывод фактического класса объекта также был бы полезен, чтобы различать фактический String
и некоторый класс, который просто содержит String.
Если элементы выглядят разумными, проблема может быть ошибочным определениемequals()
в рассматриваемом классе, который приравнивает элементы, которые должны казаться различными.В любом случае, лучшее ведение журнала покажет, почему
arr.getJSONObject(0).getString("name").equals(arr.getJSONObject(1).getString("name")
возвращает true, если вы ожидаете, что это вернет false.