Ich versuche, ein Programm zu schreiben, mit dem Sie einige Daten verwalten können. Bisher kann der Benutzer eine neue Datei mit einem Dialog "Neue Datei" erstellen. Nachdem der Benutzer einige Parameter eingegeben hat, erstelle ich eine neue Instanz einer "Datei" -Klasse. Meine Fragen jetzt ist: Wie kann ich mehrere Dateien (wie Tabs) im Speicher speichern. Ich dachte über eine Art ArrayList als eine Variable in einer "Application" -Klasse. Was wäre eine ideale Annäherung hier?So speichern Sie eine Liste von Objekten im Speicher für die spätere Verwendung
Antwort
können Sie verwenden, um eine Karte Ihre Dateien im Speicher zu speichern.
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;
}
}
dann in der Hauptklasse können Sie einfach die Filestorage-Klasse verwenden, um Ihre Dateien
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");
}
Die Komplexität Datei ist O (1) für den Zugriff auf oder speichern zu verwalten. Es ist besser als eine Liste für den Zugriff auf eine Datei.
Ja, können Sie einfach List
verwenden Instanzen zu speichern
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();
Schöne Antwort mit den meisten Operationen gegeben. Für Anfänger in Java: 'maxfiles' ist mehr oder weniger irrelevant, es ist die ursprüngliche Array-Größe/Kapazität. Du kannst es weglassen. Es hat nichts mit 'size()' zu tun. –
- 1. Speichern Sie den Speicher eines Prozesses für die spätere Verwendung?
- 2. So speichern Sie Skalierungsparameter für die spätere Verwendung
- 3. Speichern eines Zeigerwerts für die spätere Verwendung
- 4. Speichern Variable für die spätere Verwendung
- 5. Speichern von Daten auf der Seite für die spätere Verwendung
- 6. Talend: Speichern Variable für die spätere Verwendung
- 7. Speichern einer Destrukturierungskarte für die spätere Verwendung
- 8. Sie können Refactor/Rename für die spätere Verwendung speichern?
- 9. So speichern Sie eine Liste von JSON-Objekten
- 10. Safe zu speichern list :: Iterator für die spätere Verwendung?
- 11. So speichern Sie Variablen/Einstellungen in Python für die spätere Verwendung
- 12. Node.js Speichern von JSON-Daten im Array für die spätere Verwendung
- 13. Speichern einer Liste von Objekten
- 14. So speichern Sie dynamische Daten im lokalen Speicher: Android
- 15. Speichern von Objekten in einer Datei statt im Speicher
- 16. Python-Anfragen - Speichern von Cookies für die spätere Verwendung von URLs
- 17. Speichern Sie eine Zeichenfolge im lokalen Speicher
- 18. Korrekte Verwendung von Objekten in Karten speichern
- 19. Erstellen Sie eine Liste von Objekten C#
- 20. Ist es möglich, die aktuelle XMLReader-Position für die spätere Verwendung zu speichern?
- 21. beste Möglichkeit, Code für die spätere Ausführung zu speichern (Python)
- 22. Erstellen von Dateien für die spätere Verwendung in Java
- 23. Speichern von Anmeldeinformationen für die automatische Verwendung
- 24. So entfernen Sie eine Reihe von Objekten in einer Liste
- 25. So speichern Sie direkt in den persistenten Speicher, ohne die Daten im Speicher zu halten
- 26. Wie kann ich Ausgabe von Format-Tabelle für die spätere Verwendung speichern
- 27. Lucene Indizierung von Objekten im Speicher
- 28. Schreiben Sie eine anonyme Sub in Perl in eine Datei für die spätere Verwendung
- 29. Speichern von Verzeichnis als Variable für die spätere Verwendung in Linux-Skript
- 30. So überwachen Sie die Verwendung von Speicher in Android Studio
Wenn Sie beabsichtigen, Objekte auf die Festplatte (warum?) Zu schreiben, starten Sie hier: https://docs.oracle.com/javase/tutorial/jndi/objects/serial.html –
nein, ich weiß, wie Sie sie auf der Festplatte speichern , aber ich brauche einen Weg, um sie im Speicher zu behandeln, während das Programm läuft – Fullk33
Ich bekomme Ihre Frage nicht. Solange Sie keine Daten in Dateien schreiben, geschieht alles, was Sie tun, im Speicher. Alle Ihre Objekte sind nur Speicher. – GhostCat