【发布时间】:2017-06-13 05:00:25
【问题描述】:
我不太擅长哈希集,我想知道我是否能够使用 .addAll 方法检索哈希集删除的重复项。所以在我的代码中,它要求用户输入不超过 20 的值,如果是 -1,则中断。然后它会删除重复项并显示完成的列表。但现在我想显示已删除重复项的列表。例如:2 = 3 个重复 5 = 5 个重复。这是我的代码:
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Set;
public class Question {
public static void main(String[] args) {
ArrayList<Integer> entries = new ArrayList<Integer>();
Scanner input = new Scanner(System.in);
int counter = 0;
int sentinel = -1;
while (entries.size() <= 20) {
System.out.println("Please enter some numbers into the entries list");
entries.add(input.nextInt());
if (entries.get(counter) == sentinel) {
entries.remove(counter);
break;
}
System.out.println("You've added: " + entries.get(counter) + ". So far your list is as shows: " + entries);
counter++;
}
System.out.println("The list is: " + entries);
System.out.println("Checking for Duplicates...");
Set<Integer> num = new LinkedHashSet<>(entries);
num.addAll(entries); // The addAll method deletes duplicates
System.out.println(num);
entries.clear();
entries.addAll(num);
System.out.println("The Finished list is: " + entries);
}
}
【问题讨论】:
-
您可以计算重复项,但一组不会计算。一个集合不能告诉你它没有存储的信息。
-
@user3152311 请阅读What should I do when someone answers my question
标签: java list arraylist duplicates hashset