【发布时间】:2012-04-20 20:28:46
【问题描述】:
我应该读入一个包含许多不同电子邮件地址的文件并使用数组将它们打印出来。问题是我需要消除重复的电子邮件。
我能够让我的 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++;
}
}
}
}
【问题讨论】:
-
您是否正在寻找最有效的解决方案?如果没有,只需创建一个新数组并遍历旧数组,然后在检查当前条目是否已在新数组中后添加。
-
@jli 刚刚在你之前说过:P。这可能不是最有效的解决方案,但地狱。
-
@Bean Winz - 欢迎来到 stackoveflow。以后,如果您的问题是家庭作业,请务必添加
homework标签。
标签: java arrays duplicates