从ArrayList中删除重复项?

如何从ArrayList删除重复项?

我将getCcnptags数组作为[java,php,c++,c,java,php]从bean数组获取,我给每个数组变量提供超链接,但我想在添加超链接之前删除重复项,是否可以在我的下面的代码中添加任何代码以删除重复项。

 for(int k=0;k  } 

更好地使用HashSet 。 如果不可能,那么您可以使用临时HashSet

 ArrayList a= new ArrayList(); HashSet hs = new HashSet(); hs.addAll(a); // willl not add the duplicate values a.clear(); a.addAll(hs); // copy the unique values again to arraylist 

使用Set interace ,一个不包含重复元素的集合。

ArrayList创建Hashset并使用它。

Collection对象有一个构造函数,它接受Collection对象来初始化值。

 ArrayList yourlist= new ArrayList(); HashSet nodupesSet= new HashSet(yourlist); 

现在迭代nodupesSet

我在网上发现了这个。 它与删除Vector中的元素非常类似,但方法名称有所变化。

 import java.util.*; class RemoveDuplicates { public static void main(String args[]) { ArrayList v=new ArrayList(); v.add("Gowtham"); v.add(" Gutha's"); v.add(" Java"); v.add("-"); v.add("demos"); v.add("."); v.add("blogspot"); // '.' again! v.add("."); v.add("com "); // Gowtham again! v.add("gowtham"); System.out.println("Original"); for(int i=0;i v) { for(int i=0;i 

作为旁注,如果您需要列表中的项目保持其原始顺序,则可以使用以下方法。 该集用于检查重复项,并返回另一个列表。

 public list removeDuplicates(List list) { List secondary = new LinkedList(); Set auxillery = new HashSet(); for (Object o : list) { if (!auxillery.contains(o)) { auxillery.add(o); secondary.add(o); } } return secondary; } 

用法就像这样(或类似):

 public static final void main(String[] args) { List numbers = new LinkedList(); numbers.add(5); numbers.add(6); numbers.add(5); numbers.add(8); numbers = removeDuplicates(numbers); } 

需要记住的事项:如果使用自定义类,请确保它们覆盖标准的Object.hashCode()方法。 否则,这种方法将无法正常工作。