@dearname

Почему записывается в HashMap только последний обьект?

Здравствуйте. Считываю с файла данные, далее в цикле создаю обьект и добавляю с уникальным ключом обьект. Почему то он добавляется, но в следующей итерации hashmap обнуляется и добавляется текущий обьект. Почему так? У обьекта реализованы hashCode и equals.

Код урезан.
HashMap<String, User> map = new  HashMap<String, User>();
	while ((line = reader.readLine()) != null) {
					
					scanner = new Scanner(line);
					scanner.useDelimiter(",");
				         User user = new User();
					if (index_str != 0) {
						
						while(scanner.hasNext()) {
							
							String data = scanner.next();
							
							if (index == 0) {
							        user.setTableId(Long.parseLong(data));
							} else if (index == 2) {
								user.setLastName(data);
							} else if (index == 3) {
								user.setName(data);
							} else if (index == 4) {
								user.setMiddleName(data);
							} 
							index++;
							
						}
						
							String key = user.getKey();
							System.out.println(user.getKey().hashCode());
							map.put(key,user);
						

						index = 0;
					}

					index_str++;
				}
  • Вопрос задан
  • 282 просмотра
Решения вопроса 1
longclaps
@longclaps
...создаю обьект и добавляю с уникальным ключом обьект.
У обьекта реализованы hashCode и equals
, но в мапу я добавлю по ключу user.getKey().
Тут ничего не перепутано?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы