2016-03-04 97 views
0

(删除重复)收件从使用下面的头整数的数组列表中删除重复的元素的方法:如何使用此“removeDuplicate(ArrayList <Integer> list)”方法删除重复的整数?

public static void removeDuplicate(ArrayList<Integer> list) 

写测试程序提示用户输入10点的整数的列表,并显示由一个空格分隔的不同整数。

import java.util.ArrayList; 
import java.util.Scanner; 

class RemoveDuplicates { 
    public static void main(String[] args) { 
    Scanner in = new Scanner(System.in); 

    ArrayList<Integer> list = new ArrayList<>(10); 
    System.out.print("Enter 10 integers: "); 

    while (in.hasNextInt()) { 
     list.add(in.nextInt()); 
    } 

    System.out.println("The list is " + list); 
    } 

    public static void removeDuplicates(ArrayList<Integer> list) { 

    int value = 0; 

    do { 

     if (!list.contains(value) && value != 0) list.add(value); 

    } while (value != 0); 

    for (int i = 0; i < list.size(); i++) System.out.print(list.get(i) + " "); 
    } 
} 
+0

有一个数据结构叫做Set。这是一个**从不**允许重复的集合。将你的列表添加到一个集合并迭代集合。 Java JDK包含一些集合,例如'HashSet','LinkedHashSet'等,以帮助您实现您想要的。 –

+0

堆栈溢出不能像这样工作。您张贴要求和代码是很好的;但最后的事情是失踪。你没有告诉我们会发生什么(以及你预期会发生什么);因此你根本没有提出任何问题。 – GhostCat

回答

2

编辑:

运算程序将连续拍摄的输入,所以您应该限制您的扫描仪停止服用输入当计数到达分至10

你应该改变你的while循环

while (list.size()<10) { 
      list.add(in.nextInt()); 
     } 

然后你还没有调用你的方法removeDuplicates(list);,所以你应该调用它,你把输入后这样

removeDuplicates(list);


只需添加它HashSet从ArrayList中它会删除它automatcally

Set<Integer> set = new HashSet<>(listContainDupRec) 

如果你想订购的升序或降序元素然后使用TreeSet

+0

然后你会失去订购 - 这可能或可能不重要。 –

+0

@M Sac,你可以给我举个例子吗? –

+0

我并不是特别意味着元素是否应该在输出中以升序排列 - 我的意思是它们在输入中出现的顺序,即使用LinkedHashSet来保存它。 –

0

通过每个元素设置,并打印。 以下example可以帮到你。

import java.util.ArrayList; 
import java.util.HashSet; 
import java.util.List; 
import java.util.Set; 

public class ConvertListToSet 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("List values ....."); 
     List<String> list = new ArrayList<String>(); 
     list.add("1"); 

    list.add("2"); 
    list.add("3"); 
    list.add("4"); 
    list.add("1"); 

    for (String temp : list){ 
     System.out.println(temp); 
    } 

    Set<String> set = new HashSet<String>(list); 

    System.out.println("Set values ....."); 
    for (String temp : set){ 
     System.out.print(temp+" "); 
    } 
} 
}