Mi è stato suggerito di utilizzare una JTable , che dici? ; dovrebbe mantenere ordinati gli elementi da se mi pare. Posso associare ad essa una TreeSet o ha già di per se una struttura dati?
Mi è stato suggerito di utilizzare una JTable , che dici? ; dovrebbe mantenere ordinati gli elementi da se mi pare. Posso associare ad essa una TreeSet o ha già di per se una struttura dati?
Se ti è necessario visualizzare più dati incolonnati per ciascun "record", sì è appropriato.
JTable di per sé non ha alcun ordinamento "predefinito". JTable si basa sui "table model" che semplicemente espongono i dati e le informazioni su di essi.
I Set/Map non sono appropriati, non direttamente. Un table model può essere uno predefinito del framework (es. DefaultTableModel) oppure uno completamente custom. Ma in genere se ha una struttura dati interna, si basa su array o List.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Mi hanno informato male allora......comunque....
Il mio obiettivo è di visualizzare su grafica gli elementi di una collezione secondo un ordine alfabetico.
Elementi che devono essere salvati su disco per poi essere recuperati ad una successiva apertura del programmino
Quali strumenti mi consigli per fare ciò?
Se devi visualizzare una lista di oggetti, banalmente stringhe o comunque qualunque oggetto per cui toString() dia una stringa utile, allora JList è appropriato.
JList non ha nulla, di per sé, per quanto riguarda l'ordinamento degli elementi, esso si basa esclusivamente su ciò che riceve da un ListModel. Un ListModel, a parte i metodi per gestire i listener, ha due metodi principali: getSize e getElementAt, ovvero "dimmi quanti elementi hai" e "dammi l'elemento i-esimo". Quindi qualunque tipo di ordinamento può essere imposto e gestito dentro un list model.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
L'avevo descritto in breve nel post #4, ovvero: estendi AbstractListModel e dentro gestisci un banale ArrayList. I metodi getSize/getElementAt per il ListModel usano banalmente size/get sul ArrayList.
Il metodo "clou" è un tuo metodo specifico, es. add o insert (come vuoi chiamarlo) che sfrutta il principio del binary search, che non devi nemmeno implementare da zero, nel senso che Collections ha proprio due binarySearch. Determini l'indice di inserimento, inserisci nel ArrayList e poi notifichi la view con fireIntervalAdded.
C'è anche un mio nuovo Java Example Sorted List Model.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Quindi a posto di treeset uso una arraylist
Ok ci provo