Tôi phải đọc trong một tệp có chứa nhiều địa chỉ email khác nhau và in chúng ra bằng một mảng. Vấn đề là tôi cần phải loại bỏ các email trùng lặp.Java Xoá các bản sao khỏi một mảng?
Tôi đã có thể sử dụng thử/bắt tay và in ra các địa chỉ email. Tuy nhiên, tôi không chắc chắn làm thế nào để đi về việc loại bỏ các bản sao. Tôi chưa hiểu về hashcode hoặc cách sử dụng Set
. Bất kỳ trợ giúp sẽ được đánh giá cao.
Dưới đây là những gì tôi có cho đến nay:
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++;
}
}
}
}
Bạn đang tìm kiếm các giải pháp hiệu quả nhất có thể? Nếu không, chỉ cần tạo một mảng mới và lặp qua một mảng cũ, thêm khi bạn đi sau khi kiểm tra xem mục nhập hiện tại đã có trong mảng mới chưa. – jli
@jli vừa nói trước bạn: P. Nó có thể không phải là giải pháp hiệu quả nhất, nhưng địa ngục. –
có thể trùng lặp của [Làm thế nào để loại bỏ các yếu tố lặp đi lặp lại khỏi ArrayList?] (Http://stackoverflow.com/questions/203984/how-do-i-remove-repeated-elements-from-arraylist) – Mark