Java从数组中删除重复项?我应该在包含许多不同电子邮件地址的文件中读取并使用数组打印出来。问题是我需要消除重复的电子邮件。我能够让我的try / catch工作并打印出电子邮件地址。但是,我不知道如何删除重复项。我不了解哈希码或如何使用哈希码Set。任何援助将不胜感激。这是我到目前为止:import java.util.Scanner;import java.io.*;public class Duplicate {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter file name: ");
String fileName = keyboard.nextLine();
if (fileName.equals("")) {
System.out.println("Error: User did not specify a file name.");
} else {
Scanner inputStream = null;
try {
inputStream = new Scanner(new File(fileName));
} catch (FileNotFoundException e) {
System.out.println("Error: " + fileName + " does not exist.");
System.exit(0);
}
String[] address = new String[100];
int i = 0;
while (inputStream.hasNextLine()) {
String email = inputStream.nextLine();
// System.out.println(email);
address[i] = email;
System.out.println(address[i]);
i++;
}
}
}
3 回答
MM们
TA贡献1886条经验 获得超2个赞
学习Set
。学习它所花费的时间少于编写不使用它的时间。
我会帮你的 替换这个:
String[] address = new String[100];
有了这个:
Set<String> addresses = new HashSet<String>();
还有这个:
address[i] = email;
有了这个:
addresses.add(email);
你不再需要i
了。
你完成了。如果您想要打印出来:
for (String address : addresses) { System.out.println (address);}
这几乎涵盖了它。希望一切都自动排序?替换HashSet
上面的TreeSet
。现在去阅读这个优秀的教程,以便下次,你可以更快地自己完成所有这些。
添加回答
举报
0/150
提交
取消