Я задал предыдущий вопрос о том, как сохранить несколько файлов сохранения в файл .ser, и мне предложили использовать хешсет, потому что они сериализуемы. Я попытался написать тестовый фрагмент кода для сериализации каждый кусочек информации внутри хэш-набора:Java hashset как сериализовать несколько объектов
public class testHashSet {
public static void main(String[] args) throws ClassNotFoundException {
testClass new1 = new testClass("Hello", "male", true);
testClass new2 = new testClass("Goodbye", "female", true);
testClass new3 = new testClass("Something", "other", false);
HashSet<testClass> hSet = new HashSet<testClass>();
hSet.add(new1);
hSet.add(new2);
hSet.add(new3);
System.out.println(hSet);
for(int i = 0; i < hSet.size(); i++) {
try {
FileOutputStream fileOut = new FileOutputStream("/Users/Prodigy958/Desktop/Hack_exeSaves.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(hSet(i));
out.close();
fileOut.close();
} catch(IOException i) {
i.printStackTrace();
}
}
}
}
Однако у меня возникают трудности с получением кода, чтобы написать объект с индексом (I), потому что он говорит, что этот метод не определен для типа HashSet
. Есть ли способ итерации через каждую часть информации в хэш-наборе или я должен сериализовать весь набор сразу. Еще один вопрос заключается в том, что если первым ответом является последний, как бы я хотел бы десериализовать данные на отдельные классы?
Вы можете выполнить итерацию по набору с помощью 'for (элемент testClass: hSet) {...}' – bradimus