2015-08-20 3 views
0

У меня есть файл CSV, который я прочитал через парсер, например, superCSV. У меня в нем около 5000 записей. Я могу поместить все значения в HashMap, но при повторении через него он отображает только 10 записей, а не все из них. В чем причина? У меня есть значение HashCode для Map в другом классе наряду с методом equals. Невозможно понять, почему это возможно, поскольку все записи файла csv отлично читаются парсером. Любая помощь приветствуется. Спасибо.Невозможно прочитать все значения HashMap, хотя они все в нем

+0

удалить hashcode и equals метод и выполнить снова, вы получите 5000 счет. или попробуйте arraylist, если вы думаете, что дубликаты вы также хотите сохранить. –

+0

@prashantthakre При удалении он остается прежним. Ничего не меняется. Я заметил, что карта имеет только 10 записей, но я могу их правильно прочитать. – user3044240

+0

Почему бы вам не разместить небольшой пример кода? Это поможет нам помочь вам :) –

ответ

0

Возможно, вы ошибочно считаете хэш одного элемента, и вы переопределяете значения в hashmap.

Пример. Вы получаете 5000 контактов, но вы считаете хэш по имени, и у вас есть 5000 «Джон», тогда, когда вы будете итерации, вы получите только один предмет.

Пожалуйста, проверьте это.

хэш и равен реализации.

+0

Я создал стандартный метод hashcode и equals, который предоставляет IDE. Я заметил, что карта имеет только эти 10 значений, но я прочитал их все и разместил на карте, когда читал файл csv. Что-нибудь? – user3044240

+0

Я неправильно понял ваш комментарий, но я думаю, что получаю его сейчас. У меня есть столбец в моем файле, который имеет повторяющиеся значения, и он также включен в методы equals и hashcode. Но я хочу сравнить этот столбец со своей копией в другом файле, поэтому мне нужен этот столбец, даже с повторяющимися значениями, которые нужно сравнить. Итак, каково было бы ваше предложение? Благодарю. – user3044240

+0

Переопределить метод хэша и равенства. – mariopce