如何使用此&#34; removeDuplicate(ArrayList <integer> list)&#34;删除重复的整数。方法?

时间:2016-03-04 09:32:22

标签: java

  

(删除重复项)编写一个方法,使用以下标题从数组的整数列表中删除重复的元素:

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) + " ");
  }
}

2 个答案:

答案 0 :(得分:2)

修改

操作您的程序将持续接收输入,因此您应限制扫描仪在计数达到10时停止输入。

你应该改变你的while循环

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

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

removeDuplicates(list);

只需在arraylist的HashSet中添加它就会自动将其删除

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

如果您想按升序或降序排列元素,请使用TreeSet

答案 1 :(得分:0)

将每个元素传递给Set,然后打印它。 以下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+" ");
    }
}
}