(删除重复项)编写一个方法,使用以下标题从数组的整数列表中删除重复的元素:
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 :(得分: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+" ");
}
}
}