![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Vasya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 5.7.2003 Репутация: нет Всего: нет |
Здравствуйте!
Пишу я себе небольшуя программулину под андроид и стoлкнулся со следующим приколом от HashMap. Имеем:
При добавлении третьего ключа ("amount"), ключ и значение "id" исчезают, потому что перезаписываются "amount"! Это чудо явно наблюдается под отладчиком, там же видно, что hash этих ключей разный. Как тут быть, ведь мне нужно хранить значение ключей "id" и "amount" одновременно! |
|||
|
||||
| Pawl |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
А при добавлении второго все на месте? Дело в том, что вы вместо того, чтобы добавлять записи в один объект HashMap, каждый раз добавляете их в разные:
Может, лучше сделать так?
-------------------- В действительности всё совсем не так, как на самом деле |
||||||
|
|||||||
| Vasya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 5.7.2003 Репутация: нет Всего: нет |
Немного уточню: У меня есть ArrayList<Map<String, String>>. Именно в него я добавляю объект HashMap<String, String>, и кажды раз новый. Так вот, после того, как я создаю новый объект HashMap<String, String>(), я начинаю пихать в него данные. Сначала я добавляю элемент "id" = "5500". Пока все нормально. Затем я добавляю еще элемент, "address" = "Pushkina 5". Полет нормальный. Затем еще один элемент: "amount" = "10.000". Пипец. Если до этого у меня в HashMapе можно было получить значение ключа "id", которое равно "5500", то теперь место этого элемента занял новый c ключем "amount" со значением "10.000". Почему в hashmap не добавляется новый элемент, не смотря на то что ключ уникальный ("id" <> "amount")?; P.S. В процессе поиска ответа наткнулся на подобный вопрос на Stackoverflow. Но там автора вопроса признали сумашедшим, и сказали, что такого не может быть Это сообщение отредактировал(а) Vasya - 22.11.2013, 16:19 |
|||
|
||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Вообще, действительно странно! Только что смоделировал процесс у себя:
Все работает, как надо... Андроида под рукой нет, так что моделировал на JDK. Попробуйте максимально упростить код с ошибкой в андроиде, может, ошибка локализуется... -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| Vasya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 5.7.2003 Репутация: нет Всего: нет |
Вопрос снимается. Проверил работу кода с выводом в консоль, нашел собственный косяк. Все работает как надо. А вот отладчик ввел в заблуждение, показывал всякую фигню, вот я и стал грешить на HashMap.
Это сообщение отредактировал(а) Vasya - 22.11.2013, 21:47 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |