Здесь я написал код, который показывает повторяющиеся числа в текстовом файле. Здесь я предположил, что текстовый файл содержит только целые числа в каждой строке. Как вы теперь видите, он показывает повторяющиеся целые числа в текстовом файле.Идентификация повторяющихся номеров в текстовом файле с использованием набора хэшей
Я жестко закодировал путь к текстовому файлу.
Здесь я использовал два хеш-набора для его реализации. Могу ли я это сделать, используя только один набор хэшей? Можете ли вы рассказать мне, как реализовать то же самое, используя только один набор хэшей.?
import java.io.*;
import java.util.*;
общественного класса FileRead {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
HashSet <String> uniquelines=new HashSet<String>();
HashSet<String>duplicatelines=new HashSet<String>();
try{
FileInputStream fstream=new FileInputStream("C:/Users/LENOVO/Desktop/txt.txt");
DataInputStream in=new DataInputStream(fstream);
BufferedReader br=new BufferedReader(new InputStreamReader(in));
ArrayList arr=new ArrayList();
String str;
while((str=br.readLine())!=null){
if(uniquelines.contains(str)){
if(!duplicatelines.contains(str)){
duplicatelines.add(str);
System.out.println(str);
}
}
else{
uniquelines.add(str);
}
}
in.close();
}catch(Exception e){
System.out.println(e);
}
}
}
не используйте подстановочные знаки (. *) для импорта. Импортируйте только классы, которые вам нужны для использования –
Я не верю, что вы сможете использовать один хэшсет для определения повторяющихся строк. Как отметил @JB Nizet, вам нужно использовать хэш-таблицу. HashSet "не дает никаких гарантий относительно порядка итерации набора". но, если вы использовали сортировку, вы можете отсортировать коллекцию, а затем сравнить позицию + (позиция + 1), чтобы определить дубликаты. Это опять же не так грациозно, как использование HashMap. – XanderLynn