我应该在包含许多不同电子邮件地址的文件中读取并使用数组打印出来.问题是我需要消除重复的电子邮件.
我能够让我的try / catch工作并打印出电子邮件地址.但是,我不知道如何删除重复项.我还没有了解hashcode或如何使用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++;
}
}
}
}
简单的解决方案是使用Set of java,
所以设置自动删除重复值
并且在你的代码中你有数组而不是使用代码直接设置转换数组
Set<T> mySet = new HashSet<T>(Arrays.asList(someArray));
翻译自:https://stackoverflow.com/questions/10056729/java-remove-duplicates-from-an-array