Hallo liebe Gemeinde,
ich habe eine Frage zu HashSets, bzw. scheinbar einen Gedankenfehler. Trotz Recherche ist mir irgendwie nicht klar, warum in einem HashSet doppelte Elemente auftauchen.
Kurz eine kleine Beschreibung, woran es hängt:
Ich erzeuge Objekte einer Metrhode, die ich anschließend in ein HashSet schreiben will. Da es durchaus sein kann, dass Objekte mit dem selben Inhalt erzeugt werden, möchte ich doppelte Objekte nicht speichern.
Nach meinem Verständnis müsste das HashSet dieses ohnehin verhindern, oder?
Mal etwas Code, wo vielleicht klar wird, was ich meine:
Ich hoffe, mir kann jemand eine kleine Hilfestellung geben.
Gruß,
Faruun
ich habe eine Frage zu HashSets, bzw. scheinbar einen Gedankenfehler. Trotz Recherche ist mir irgendwie nicht klar, warum in einem HashSet doppelte Elemente auftauchen.
Kurz eine kleine Beschreibung, woran es hängt:
Ich erzeuge Objekte einer Metrhode, die ich anschließend in ein HashSet schreiben will. Da es durchaus sein kann, dass Objekte mit dem selben Inhalt erzeugt werden, möchte ich doppelte Objekte nicht speichern.
Nach meinem Verständnis müsste das HashSet dieses ohnehin verhindern, oder?
Mal etwas Code, wo vielleicht klar wird, was ich meine:
Code:
public HashSet getFormsSearchList(){
List formsSearchList = new ArrayList();
HashSet doubleEliminator = new HashSet();
try {
List catalogs = resp.getCatalogLinks();
for (Iterator it = catalogs.iterator(); it.hasNext();) {
String singleCatalogLink = (String) it.next();
CatalogResponse catalogResponse = new CatalogResponse(getPage(singleCatalogLink));
formsSearchList.addAll(traverseFolder(folderLinks, null, Response.FORMSSEARCH_FORM_INFO_PATTERN)); // Hier kommt eine Liste mit meinen Objekte zurück, noch mit doppelten Einträgen
}
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
for (Iterator iter = formsSearchList.iterator(); iter.hasNext();) {
FormInfoBean element = (FormInfoBean) iter.next();
doubleEliminator.add(element); // Hier würde ich vermuten, dass alle doppelten Objekte nicht mehr geadded werden ... scheinbar aber nicht der Fall :(
}
return doubleEliminator;
}
Ich hoffe, mir kann jemand eine kleine Hilfestellung geben.
Gruß,
Faruun