Doppelte Datensätze aus ArrayList entfernen
Aus Byte-Welt Wiki
Version vom 28. Januar 2018, 16:43 Uhr von L-ectron-x (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Manchmal hat man Listen mit doppelten oder mehrfachen Einträgen. Wenn man keine doppelten Einträge in einer {{JAPI|Collection}} zulassen möchte, verwendet m…“)
Manchmal hat man Listen mit doppelten oder mehrfachen Einträgen. Wenn man keine doppelten Einträge in einer Collection
zulassen möchte, verwendet man statt einer List
ein Set
. Sets lassen von Hause aus keine doppelten Einträge zu. Dieses Verhalten kann man zur Lösung des Problems dieses Themas benutzen.
<code=java> /**
* CollectionUtil bietet Methoden zur Umwandlung und Behandlung von * Collection-Typen an. * * @autor Gernot Segieth */
public class CollectionUtil {
/** * Entfernt doppelte Einträge aus der übergebenen Liste. * * @param list eine Liste mit doppelten Einträgen * @return die um doppelte Einträge bereinigte Liste */ public static List<?> removeDuplicate(List<?> list) { Set<?> set = transformListIntoSet(list); List<?> list = transformSetIntoList(set); return list; }
/** * Wandelt eine List in ein Set um. * * @param list die Liste, die in ein Set verwandelt werden soll * @return der Ergebnis-Typ, ein Set */ public static Set<?> transformListIntoSet(List<?> list) { Set<?> set = new HashSet<>(); for(Object o : list) { set.put(o); } return set; }
/** * Wandelt ein Set in eine List um. * * @param set das Set, das in eine List verwandelt werden soll * @return der Ergebnis-Typ, eine List */ public static List<?> transformSetIntoList(Set<?> set) { List<?> list = new ArrayList<>(); Iterator<?> it = set.iterator(); while(it.hasNext()) { list.add(it.next()); } return list; }
} </code=java>