В настоящее время я получаю список объектов List<NprDto>
(класс NprDto содержит accountId, theDate1 и theDate2) из запроса, который возвращает результаты, в которых NprDto имеет дубликаты учетных записей. Мне нужно иметь List<NproDto>
только уникальных учетных записей, но сохранить объект. Это нужно только добавить первую учетную запись, если она встретится, и проигнорировать остальные.Java Как сохранить уникальные значения в списке объектов
Я сейчас пытаюсь это:
private List<NprDto> getUniqueAccountList(List<NprDto> nonUniqueAccountList) throws Exception {
Map<Long,NprDto> uniqueAccountsMapList = new HashMap<Long,NprDto>();
List<NprDto> uniqueAccountsList = null;
if(nonUniqueAccountList != null && !nonUniqueAccountList.isEmpty()) {
for(NprDto nprDto : nonUniqueAccountList) {
uniqueAccountsMapList.put(Long.valueOf(nprDto.getAccountId()), nprDto);
}
}
uniqueAccountsList = new ArrayList<NprDto>(uniqueAccountsMapList.values());
return uniqueAccountsList;
}
Но это, кажется, не работает, потому что, когда я перебирать возвращенного uniqueAccountsList позже это только поднимает первый объект.
Любая помощь была бы принята с благодарностью.
У вас есть уникальные номера счетов? Я думаю, что ваш дизайн хорош (экономит много работы, необходимой для создания набора), и ваш код тоже выглядит хорошо. Я держу пари, что твоя проблема в другом месте. – RalphChapin
У меня был оператор вывода в неправильном месте. Все работает нормально. Благодаря! – Richard