Doppelte Datensätze aus ArrayList entfernen: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
K
Zeile 4: Zeile 4:
  
 
<code=java>
 
<code=java>
 +
import java.util.ArrayList;
 +
import java.util.HashSet;
 +
import java.util.Iterator;
 +
import java.util.List;
 +
import java.util.Set;
 +
 
/**
 
/**
 
  * CollectionUtil bietet Methoden zur Umwandlung und Behandlung von
 
  * CollectionUtil bietet Methoden zur Umwandlung und Behandlung von
Zeile 19: Zeile 25:
 
     */
 
     */
 
   public static List<?> removeDuplicate(List<?> list) {
 
   public static List<?> removeDuplicate(List<?> list) {
       Set<?> set = transformListIntoSet(list);
+
       Set set = transformListIntoSet(list);
       List<?> listWithoutDuplicate = transformSetIntoList(set);
+
       List listWithoutDuplicate = transformSetIntoList(set);
 
       return listWithoutDuplicate;
 
       return listWithoutDuplicate;
 
   }
 
   }
Zeile 31: Zeile 37:
 
     */
 
     */
 
   public static Set<?> transformListIntoSet(List<?> list) {
 
   public static Set<?> transformListIntoSet(List<?> list) {
       Set<?> set = new HashSet<>();
+
       Set set = new HashSet<>();
 
       for(Object o : list) {
 
       for(Object o : list) {
         set.put(o);
+
         set.add(o);
 
       }
 
       }
 
       return set;
 
       return set;
Zeile 45: Zeile 51:
 
     */
 
     */
 
   public static List<?> transformSetIntoList(Set<?> set) {
 
   public static List<?> transformSetIntoList(Set<?> set) {
       List<?> list = new ArrayList<>();
+
       List list = new ArrayList<>();
 
       Iterator<?> it = set.iterator();
 
       Iterator<?> it = set.iterator();
 
       while(it.hasNext()) {
 
       while(it.hasNext()) {
Zeile 52: Zeile 58:
 
       return list;
 
       return list;
 
   }
 
   }
 
+
 
 
}
 
}
 
</code=java>
 
</code=java>

Version vom 28. Januar 2018, 17:06 Uhr

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.

Baustelle.png Dieser Beitrag wird derzeit noch bearbeitet. Der Text ist deshalb unvollständig und kann Fehler oder ungeprüfte Aussagen enthalten.

<code=java> import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set;

/**

* 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 listWithoutDuplicate = transformSetIntoList(set);
     return listWithoutDuplicate;
  }
  /**
   * 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.add(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>