我应该读一个包含许多不同电子邮件地址的文件,并使用数组将它们打印出来。问题是我需要消除重复的电子邮件。
我能够尝试/捕捉并打印出电子邮件地址。但是,我不确定如何删除重复项。我对散列码或如何使用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 Java,
因此设置自动删除重复值
并且在你的代码中你拥有数组,而不是将转换数组直接使用代码设置
Set<T> mySet = new HashSet<T>(Arrays.asList(someArray));