Here you can find the source of removeDuplicates(List
Parameter | Description |
---|---|
T | a parameter |
list | a parameter |
public static <T> List<T> removeDuplicates(List<T> list)
//package com.java2s; /*---------------------------------------------------------------------------- This file is part of deegree, http://deegree.org/ Copyright (C) 2001-2009 by:/*from w w w . j a v a 2 s . co m*/ Department of Geography, University of Bonn and lat/lon GmbH This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Contact information: lat/lon GmbH Aennchenstr. 19, 53177 Bonn Germany http://lat-lon.de/ Department of Geography, University of Bonn Prof. Dr. Klaus Greve Postfach 1147, 53001 Bonn Germany http://www.geographie.uni-bonn.de/deegree/ e-mail: info@deegree.org ----------------------------------------------------------------------------*/ import java.util.HashSet; import java.util.List; import java.util.ListIterator; public class Main { /** * Keeps and returns the original list. * * @param <T> * @param list * @return removes any duplicates in the list. Keeps the first occurrence of duplicates. */ public static <T> List<T> removeDuplicates(List<T> list) { HashSet<T> set = new HashSet<T>(list.size()); ListIterator<T> i = list.listIterator(); while (i.hasNext()) { T cur = i.next(); if (set.contains(cur)) { i.remove(); } else { set.add(cur); } } return list; } }