Prima di tutto, non sono sicuro del motivo per cui le persone qui si occupano così frequentemente della validità di una domanda. Esistono numerosi casi in cui le persone hanno ritenuto opportuno mantenere un ArrayList in ordine. Mantenere un ArrayList nell'ordine ordinato è grossolanamente inefficiente per gli elenchi di grandi dimensioni.
I nodi Entry della distribuzione di origine Java (Oracle) standard non mantengono le dimensioni degli alberi discendenti. Per questo motivo, non è possibile identificare un elemento all'interno della mappa per indice senza una ricerca sequenziale inefficiente.
Trovo questo inconveniente così grave che ho scritto la mia mappa AVL in grado di ottenere in modo efficiente elementi per indice e calcolo indexOf (E). Rendere ciò possibile è semplice come mantenere le dimensioni di ciascuno dei rami sinistro e destro di una voce. C'è qualche possibilità che la libreria Glazedlists abbia un albero ricercabile incorporato in qualche parte. Potresti rivederlo.
fonte
2013-10-24 17:08:38
Perché vuoi farlo? Gli indici sono interni all'implementazione TreeMap. Non dovresti usarli. Dovresti sempre fare affidamento solo sui metodi 'keys()', 'values ()' e 'get (chiave)'. –
È abbastanza deliberato che non è possibile farlo, eccetto per il semplice iterare attraverso il 'entrySet' in tempo lineare. –
Sto sviluppando un'applicazione musicale e devo memorizzare albumname in chiave e albumid in valore. La situazione è così per me per ottenere sia la chiave che il valore. Posso raggiungere il mio compito usando un ArrayList extra, ma voglio implementarlo semplicemente. –