Я создаю программу, которая должна указывать, являются ли все слова из текстового файла уникальными или если существует дубликат с использованием HashSet. Если есть дубликат, единственным выходом должен быть «NOT_UNIQUE», и если дубликатов нет, выход должен быть «UNIQUE».Как получить только один вывод из цикла при тестировании HashSet
Я считаю, что способ сделать это - добавить слова из файла в HashSet, и если слово не может быть добавлено, это потому, что это слово является дубликатом. Я уже начал создавать программу, но программа выводит «UNIQUE» для каждого слова, а не только один раз в конце программы. Я думаю, что это связано с моим использованием while-loop и infile.readLine(), но я не уверен, что еще здесь делать. Спасибо за помощь. Мой код ниже:
import java.io.*;
import java.util.*;
public class Lab5
{
public static void main (String[] args) throws Exception
{
HashSet<String> set = new HashSet<String>();
BufferedReader infile = new BufferedReader(new FileReader(args[0]));
while (infile.ready())
{
String word = infile.readLine();
if (!set.add(word))
System.out.println("NOT_UNIQUE \n");
else
System.out.println("UNIQUE \n");
}
}
}
Хотя ваш ответ более эффективен, чем у Бергера - теперь он удален, он не закрывает потоки (обратите внимание, что OP тоже не потрудился). – Mena