Java Comment Garder les Valeurs Uniques Dans Une Liste d'Objets

Je suis actuellement la recherche d'une liste d'objets List<NprDto> (Le NprDto classe contient accountId, theDate1, et theDate2) à partir d'une requête qui renvoie des résultats où le NprDto a double accountIds. J'ai besoin d'avoir un List<NproDto> de seulement unique accountIds mais garder l'objet. Il doit seulement ajouter de la première accountId il vient à travers et ignore le reste.

Je suis en train d'essayer ceci:

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;

}

Mais cela ne semble pas fonctionner, car quand je l'itération à travers le retour de l'uniqueAccountsList plus tard, il ne capte que le premier objet.

Toute aide serait grandement appréciée.

Êtes-vous sûr de ont des numéros de compte? Je pense que votre conception est bonne (permet d'économiser beaucoup de travail, vous devez faire un Jeu), et que ton code semble bon aussi. Je parie que votre problème est ailleurs.
J'ai eu une sortie de déclaration dans le mauvais emplacement. Tout fonctionne très bien. Merci!

OriginalL'auteur Richard | 2013-11-21