Dove posso trovare un'implementazione di multimap per Java che funzionerà su Android senza dover includere altre classi, ecc. Le implementazioni che ho trovato richiedono tutte altre cose che richiedono altre le cose e diventa disordinato veloce. Sto facendo il porting di un progetto da C++ e sono nuovo a java (e anche questo progetto, quindi sto cercando di mantenere le cose il più identiche possibile mentre lo faccio funzionare) quindi qualsiasi riferimento o esempio sarebbe fantastico.Come posso creare una Multimap in Java su Android
risposta
È possibile utilizzare una mappa e un elenco per creare una multimap. Diciamo che voleva associare un numero intero con un elenco di tipo di classe T. Utilizzare il seguente codice:
Map<Integer, List<T>> myMultiMap = new HashMap<Integer, List<T>>();
potrebbe ottenere disordinato, ma, questo dovrebbe darti quello che stai cercando.
Un'altra opzione consiste nell'utilizzare le implementazioni della libreria Multimap della libreria.
Sembra che stiate cercando la libreria Apache Commons Collection. Esiste una classe MultiMap. Non l'ho ancora provato, quindi non posso prometterlo, ma sembra giusto per il tuo progetto.
Non si trova una funzione MultiMap in Java, quindi altri hanno librerie scritte che lo contengono. Puoi comunque provare a implementarlo tu stesso se sei a livello di conoscenza è abbastanza alto ma ciò richiederebbe una certa esperienza di Java. Quindi la soluzione migliore è cercare di imparare come usare e, se necessario, adattare le librerie per utilizzarle su Android.
Se avete a cuore la dimensione del codice, abbiamo appena aggiunto multimaps alla nostra libreria di utilità: http://greenrobot.org/2015/12/11/multimaps-in-greenrobot-common-2-2/
Il vaso è ben al di sotto 100k, che è bello se si considera limite di 65K il metodo di Android.
Stavo guardando Guava, ma l'implementazione di multimap sembra richiedere alcune altre classi, che a loro volta richiedono altri ... Non voglio installare e includere una pila di nuove cose, voglio solo un multimap semplice che si comporterà come fa in C++ per semplificare il porting. Grazie per i suggerimenti però, se non trovo qualcosa di abbastanza pulito, potrei implementare una mappa/lista come mi raccomando, ma poi devo creare un po 'di gestione di quella struttura ... – ima747
Elenco in una mappa che si è rivelata essere la migliore soluzione per le mie esigenze. – ima747