慕運(yùn)維8079593
2019-07-24 20:28:39
Java從數(shù)組中刪除重復(fù)項?我應(yīng)該在包含許多不同電子郵件地址的文件中讀取并使用數(shù)組打印出來。問題是我需要消除重復(fù)的電子郵件。我能夠讓我的try / catch工作并打印出電子郵件地址。但是,我不知道如何刪除重復(fù)項。我不了解哈希碼或如何使用哈希碼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貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個贊
學(xué)習(xí)Set
。學(xué)習(xí)它所花費(fèi)的時間少于編寫不使用它的時間。
我會幫你的 替換這個:
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
?,F(xiàn)在去閱讀這個優(yōu)秀的教程,以便下次,你可以更快地自己完成所有這些。
添加回答
舉報
0/150
提交
取消