У меня есть файл CSV, который я прочитал через парсер, например, superCSV. У меня в нем около 5000 записей. Я могу поместить все значения в HashMap, но при повторении через него он отображает только 10 записей, а не все из них. В чем причина? У меня есть значение HashCode для Map в другом классе наряду с методом equals. Невозможно понять, почему это возможно, поскольку все записи файла csv отлично читаются парсером. Любая помощь приветствуется. Спасибо.Невозможно прочитать все значения HashMap, хотя они все в нем
ответ
Возможно, вы ошибочно считаете хэш одного элемента, и вы переопределяете значения в hashmap.
Пример. Вы получаете 5000 контактов, но вы считаете хэш по имени, и у вас есть 5000 «Джон», тогда, когда вы будете итерации, вы получите только один предмет.
Пожалуйста, проверьте это.
хэш и равен реализации.
Я создал стандартный метод hashcode и equals, который предоставляет IDE. Я заметил, что карта имеет только эти 10 значений, но я прочитал их все и разместил на карте, когда читал файл csv. Что-нибудь? – user3044240
Я неправильно понял ваш комментарий, но я думаю, что получаю его сейчас. У меня есть столбец в моем файле, который имеет повторяющиеся значения, и он также включен в методы equals и hashcode. Но я хочу сравнить этот столбец со своей копией в другом файле, поэтому мне нужен этот столбец, даже с повторяющимися значениями, которые нужно сравнить. Итак, каково было бы ваше предложение? Благодарю. – user3044240
Переопределить метод хэша и равенства. – mariopce
удалить hashcode и equals метод и выполнить снова, вы получите 5000 счет. или попробуйте arraylist, если вы думаете, что дубликаты вы также хотите сохранить. –
@prashantthakre При удалении он остается прежним. Ничего не меняется. Я заметил, что карта имеет только 10 записей, но я могу их правильно прочитать. – user3044240
Почему бы вам не разместить небольшой пример кода? Это поможет нам помочь вам :) –