Я должен читать в файле, содержащем множество разных адресов электронной почты, и распечатывать их с помощью массива. Проблема в том, что мне нужно устранить дубликаты писем.Java Удалить дубликаты из массива?
Мне удалось заставить мой 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++;
}
}
}
}
Вы ищете наиболее эффективное решение возможно? Если нет, просто создайте новый массив и повторите попытку через старый, добавив, когда вы пойдете после проверки, является ли текущая запись уже в новом массиве. – jli
@jli просто так сказал перед вами: P. Это может быть не самое эффективное решение, но ад. –
Возможный дубликат [Как удалить повторяющиеся элементы из ArrayList?] (Http://stackoverflow.com/questions/203984/how-do-remove-repeated-elements-from-arraylist) – Mark