Я пытаюсь написать программу, которая поможет управлять некоторыми данными. Пока пользователь может создать новый файл, используя диалог «Новый файл». После того, как пользователь ввел некоторые параметры, я создаю новый экземпляр класса «Файл». Теперь мои вопросы: как я могу хранить в памяти несколько файлов (например, вкладки). Я думал об использовании своего рода ArrayList в качестве переменной в классе «Приложение». Что было бы идеальным решением здесь?Как сохранить список объектов в памяти для последующего использования
0
A
ответ
1
Вы можете использовать карту для хранения файлов в памяти.
public class FileStorage{
Map<String, File> fileMap;
public FileStorage(){
fileMap = new HashMap<String, File>();
}
public void addNewFile(File f, String fileName){
if (fileMap.get(fileName) != null){
// Do something if you do not want to erase previous file...
else{
fileMap.put(fileName, f);
}
}
public File getStoredFile(String fileName){
File f = fileMap.get(fileName);
if (f==null){
// alert user the file is not found.
}
return f;
}
}
Затем в главном классе вы можете просто использовать класс FileStorage для управления файлами
public static void main(String[] args){
FileStorage fileStorage = new FileStorage();
// User create a new file
File file1 = new File();
fileStorage.addNewFile(file1, "file1"); // name can also be file1.getName()
[...]
// Later you can access the file
File storedFile = fileStorage.getStoredFile("file1");
}
Сложность для доступа или хранения файла O (1). Это лучше, чем список для доступа к файлу.
1
Да, вы можете просто использовать List
для хранения экземпляров
int maxfiles = 150; //You can set the length of the list, by default is 10
List<File> files = new ArrayList<File>(maxfiles);
//Your multiple files here
File file1 = null;
File file2 = null;
File file3 = null;
//Simply add it to the List
files.add(file1);
files.add(file2);
files.add(file3);
//And remove it by
files.remove(0); //Index
//Or remove all
files.clear();
+0
Хороший ответ с большинством приведенных операций. Для новичков в java: 'maxfiles' более или менее неактуальен, это начальный размер/емкость массива. Вы можете это исключить. Он не имеет ничего общего с 'size()'. –
Смежные вопросы
- 1. Создание объектов для последующего использования
- 2. Как сохранить Windows.Media.FaceAnalysis.DetectedFace для последующего использования?
- 3. Сохранить память процесса для последующего использования?
- 4. Как сохранить значение для последующего использования?
- 5. Как сохранить строку для последующего использования?
- 6. Как сохранить пароль для последующего использования?
- 7. Как сохранить параметры масштабирования для последующего использования
- 8. Как сохранить результат будущего для последующего использования
- 9. Сохранить изображения для последующего использования в iPhone
- 10. Лучший способ сохранить данные для последующего использования?
- 11. Сохранить UEWebView ActiveElement для последующего использования
- 12. Пытается сохранить переменную класса для последующего использования
- 13. Сохраняйте данные для последующего использования
- 14. Сохранить загруженный файл для последующего использования
- 15. Сохранить текущую замена Подст для последующего использования
- 16. Как сохранить объект jQuery в моем массиве для последующего использования?
- 17. Сохранить DOM элемент для последующего использования
- 18. Сохранение объекта для последующего использования
- 19. C# Как сохранить вызов функции в памяти для последующего вызова
- 20. Должен ли я сохранить NSManagedObjectModel в свойстве для последующего использования?
- 21. Как сохранить данные в деятельности для последующего использования
- 22. Как сохранить строки текстовых файлов для последующего использования в Java
- 23. Как сохранить значения в 2D-массиве для последующего использования?
- 24. Как сохранить переменные/предпочтения в Python для последующего использования
- 25. Как сохранить JPG в Android, для последующего использования?
- 26. Как сохранить диапазон javascript в базе данных для последующего использования?
- 27. Сохранить переменную как переменную в MYSQL для последующего использования
- 28. Как сохранить переменную в файле для последующего использования?
- 29. Как сохранить объект FileList для Google Диска для последующего использования?
- 30. Сохраняет зашифрованный пароль в памяти для последующего использования в безопасности?
Если вы собираетесь записывать объекты на диск (зачем?), Начинайте здесь: https://docs.oracle.com/javase/tutorial/jndi/objects/serial.html –
нет, я знаю, как их хранить на диске , но мне нужен способ справиться с ними в памяти во время работы программы – Fullk33
У меня нет вашего вопроса. Если вы не записываете данные в файлы, все, что вы делаете, происходит в памяти. Все ваши объекты - только память. – GhostCat