Ich habe eine LinkedHashMap<String,Object>
und fragte mich, was der effizienteste Weg, um die String
Teil jedes Elements in der in eine JList
zu setzen.Wie kann ich die Schlüssel einer LinkedHashMap zu einer JList hinzufügen?
Antwort
Sie könnten auch die setListData(Vector) Methode verwenden:
jList1.setListData(new Vector<String>(map.keySet()));
Mit jedem der setListData
Methoden, Sie machen eine Kopie der aktuellen Daten, so dass Änderungen an der Karte wird in der Liste nicht berücksichtigt werden. Sie könnten stattdessen eine benutzerdefinierte ListModel
erstellen und diese stattdessen an die setModel
-Methode übergeben, aber da es keine Möglichkeit gibt, auf ein beliebiges Element einer per Index zuzugreifen, ist dies wahrscheinlich nicht möglich.
So gefunden, um es zu tun, nachdem ich die Frage beantwortet hatte, dachte ich, ich würde es hier für die Gemeinschaft aufstellen. Ich denke, dass dies der effizienteste Weg ist, um es zu schaffen, aber ich bin sicherlich offen für weitere Vorschläge.
jList1.setListData(LinkedHashMap.keySet().toArray());
Wenn der JList nicht empfindlich auf Änderungen der ursprünglichen Karte ist, können Sie die ursprüngliche Methode verwendet wird, ist in Ordnung (besser als Vektor verwendet, der die zusätzliche Schicht von Synchronisations hat).
Wenn Sie jList ändern möchten, wenn sich die Karte ändert, müssen Sie Ihr eigenes ListModel schreiben (was nicht so schwer ist). Sie müssen auch herausfinden, wie Sie wissen, wann sich die Karte ändert.
Was meinst du mit der ursprünglichen Methode ist "besser als mit Vektor?" Ich bin nur Neugierig. –
Die Vector-Klasse hat alle Methoden synchronisiert. Dies fügt jedem Anruf geringe Kosten hinzu. Es ist kein großer Unterschied, aber da die andere Technik ungefähr so einfach ist, empfehle ich es über Vektoren. –
- 1. Hinzufügen einer Bildlaufleiste zu einer JList?
- 2. Hinzufügen von JLabels zu einer JList?
- 3. Wie verschiebe ich ausgewählte Elemente von einer Jlist zu einer anderen Jlist in einer anderen Klasse
- 4. Scrollbar zu JList hinzufügen
- 5. Hinzufügen einer Bildlaufleiste zu JList, JList wird zu einem JPanel hinzugefügt
- 6. Objekte aus verschiedenen JLists zu einer JList hinzufügen
- 7. Elemente zu einem JList Hinzufügen
- 8. Hat Java's LinkedHashMap die Reihenfolge der Schlüssel?
- 9. Wie Hörer von LinkedHashMap Objekte zu entfernen, wenn der Schlüssel
- 10. Aktualisieren/Erstellen einer JList
- 11. Kann nicht zu einer JList hinzufügen, wenn Liste zu einem JScrollPane hinzugefügt wird
- 12. Wie kann ich die Schlüssel einer Map in Java sortieren?
- 13. Problem in JList von einer Liste hinzufügen zu einer anderen Liste
- 14. Wie kann ich den Text von einer Komponente in einer JList erhalten?
- 15. Wie zeichne Rechtecke aus einer JList Auswahl
- 16. Sauberes Modell einer JList Java
- 17. Wie kann ich die in LinkedHashMap gespeicherten Daten ausdrucken
- 18. Wie bekomme ich eine Liste von Objekten aus einer jlist
- 19. Wie kann ich eine Zusammenfassungszeile zu einer Drupal View hinzufügen?
- 20. Wie kann ich Zeilen zu einer Listenansicht asynchron hinzufügen?
- 21. Wie kann ich Lösungsordner-Dateien zu einer VS-Projektvorlage hinzufügen?
- 22. Wie kann ich ein onmouseover-Ereignis zu einer Zeile hinzufügen?
- 23. Wie kann ich XElements dynamisch zu einer XML-Datei hinzufügen?
- 24. Magento - Wie kann ich Bewertungsinformationen zu einer Bewertung hinzufügen?
- 25. Wie kann ich einen Standardwert zu einer RadComboBox hinzufügen?
- 26. Hinzufügen zu einer JList mit einem ActionListener und Refreshing GUI Rahmen nach dem Hinzufügen
- 27. Wie kann ich einen Benutzer-Interrupt zu einer Endlosschleife hinzufügen?
- 28. Wie kann ich programmatisch Inhalte zu einer Bachstelzen-StreamField hinzufügen?
- 29. Wie kann ich einen Decorator zu einer bestehenden Objektmethode hinzufügen?
- 30. Wie kann ich mehrere UIBarButtonItems zu einer UINavigationBar hinzufügen?
Solange Sie nicht erwarten, dass die JList aktualisiert wird, wenn Sie etwas zur Karte hinzufügen, funktioniert dies. –
Sie können auch die setListData (Vector) -Methode verwenden: jList1.setListData (new Vector (map.keySet())); –
danke mmyers Ich denke, ich werde stattdessen so verwenden. –