In Java, Elenco e Mappa si utilizzano nelle raccolte. Ma non riuscivo a capire in quali situazioni dovremmo usare List e quale ora usare Map. Qual è la principale differenza tra entrambi?Come la lista si differenzia dalla mappa?
risposta
ora sarebbe un buon momento per leggere il Java collections tutorial - ma fondamentalmente, una lista è una sequenza ordinata di elementi che è possibile accedere per indice, e una mappa è un solito non ordinata mappatura da chiavi di valori. (Alcune mappe mantengono l'ordine di inserimento, ma è specifico dell'implementazione.)
È di solito piuttosto ovvio quando si desidera una mappatura chiave/valore e quando si desidera solo una raccolta di elementi. Diventa meno chiaro se la chiave è parte di il valore, ma si desidera essere in grado di ottenere un elemento con quella chiave in modo efficiente. Questo è ancora un buon caso d'uso per una mappa, anche se nello alcuni rileva che non hai una collezione separata di chiavi.
C'è anche Set
, che è una raccolta (di solito non ordinata) di elementi distinti.
List
è solo un collectiom ordinato (una sequenza). Controllare questo list documentation. È possibile accedere agli elementi in base all'indice intero (posizione nell'elenco) e cercare elementi nell'elenco. Anche gli elenchi consentono elementi duplicati e più elementi NULL.
Map
è un oggetto che associa i valori ai tasti. Controlla questo map documentation. Una mappa non può contenere chiavi duplicate; ogni chiave può mappare al massimo un valore.
Interfaccia mappa Una mappa si occupa di identificatori univoci. Si mappa una chiave univoca (l'ID) a un valore specifico , dove sia la chiave che il valore sono, ovviamente, oggetti. Le implementazioni Mappa consentono di eseguire operazioni come la ricerca di un valore in base alla chiave, richiedere una raccolta dei soli valori o richiedere una raccolta delle sole chiavi. Come i set, le mappe si basano sul metodo equals() per determinare se le due chiavi sono uguali o diverse.
Elenco interfaccia Una lista si occupa dell'indice. L'unica cosa che List ha che non-list non ha è un insieme di metodi relativi all'indice. Questi metodi chiave includono cose come get (int index), indexOf (Object o), add (int index, Object obj), e quindi on. Tutte e tre le implementazioni di List sono ordinate per posizione di indice, una posizione che è possibile determinare impostando un oggetto su un indice specifico o aggiungendolo senza specificando la posizione, nel qual caso l'oggetto viene aggiunto alla fine.
elenco è un elenco collegato, in cui ogni oggetto è collegato al successivo tramite puntatori. il tempo necessario per inserire un nuovo oggetto nell'elenco è O (1), ma il resto delle operazioni su di esso impiegano più tempo.
la cosa buona è che richiede esattamente la quantità di memoria necessaria e nemmeno il byte più di quello.
Le mappe sono una struttura dati con un array e ogni voce dell'array viene calcolata con un hashFunction(key)
che calcola la posizione in base alla chiave. quasi ogni operazione in una mappa prende O (1) (tranne l'inserimento quando ci sono 2 chiavi identiche) ma la complessità dello spazio è piuttosto grande.
per una lettura più meta di wikipedia HashMap e linked list
HashMap e LinkedList sono implementazioni dell'interfaccia Mappa ed Elenco, sono solo un caso specifico di tali raccolte. –
@GuillaumePolet, sei corretto, ma l'idea è l'importante. comprendere la differenza tra hashmap e linkedlist è la base per capire la differenza tra MAP e LIST – thepoosh
HashList è una struttura di dati memorizzare gli oggetti in una tabella hash e un list.it è una combinazione di HashMap e lista doppiamente collegata. l'accesso sarà più veloce. HashMap è l'implementazione della tabella hash dell'interfaccia della mappa, è la stessa di HashTable, tranne per il fatto che non è sincronizzata e consente valori nulli. List è una raccolta ordinata e consente nulli e duplicati in essa. è possibile l'accesso posizionale. Set è una raccolta che non consente duplicati, può consentire al massimo un elemento nullo. come il nostro set matematico.
List - This datastructure is used to contain list of elements.
In case you need list of elements and the list may contain duplicate values,
then you have to use List.
Map - It contains data as key value pair. When you have to store data
in key value pair,so that latter you can retrieve data using the key,
you have to use Map data structure.
implementazione List - ArrayList, LinkedList
Mappa implementazione - HashMap, TreeMap
Rispetto HashMap
a ArrayList
- Una mappa hash è la struttura dei dati più veloce, se si desidera ottenere tutti nodi per una pagina. L'elenco di nodi può essere recuperato in tempo costante (O (1)) mentre con gli elenchi il tempo è O (n) (n = numero di pagine, più veloce su liste ordinate ma mai vicino a O (1))
- 1. Come si differenzia Cucumber da JUnit?
- 2. Il modo migliore per ottenere la mappa dalla lista chiave/lista valori in groovy?
- 3. GSON serializzare/deserializzare Mappa per/dalla lista dei KeyValuePairs
- 4. Rimuovere stringa dalla lista se dalla lista
- 5. Lista mappa sul dizionario
- 6. Come si differenzia un servizio Windows da un exe standard?
- 7. Come si differenzia un operatore di streaming dall'esecuzione differita?
- 8. Su Windows, come si differenzia OpenGL da DirectX?
- 9. Rimuovi poligono dalla mappa
- 10. numeri estrazione dalla lista
- 11. invio Lista/Mappa come parametro POST jersey
- 12. Ottenere valore dalla mappa
- 13. ottenere più risultati dalla mappa con la "lente"
- 14. Eliminare l'elemento dalla lista
- 15. Leaflet.js: Come rimuovere più livelli dalla mappa
- 16. Express SessionID si differenzia da SessionID in Cookie
- 17. mappa vs lista; perché un comportamento diverso?
- 18. Hibernate @OneToMany rimuovere figlio dalla lista quando si aggiorna genitore
- 19. Creare dizionario dalla lista python
- 20. Come eliminare tutti gli articoli dalla lista?
- 21. come correttamente rimuovere elemento dalla lista
- 22. Errore: ridichiarazione differenzia 'constexpr'
- 23. Come rimuovere un intero dalla lista?
- 24. Python Rimuovi elemento dalla lista
- 25. C# LINQ selezionare dalla lista
- 26. Differenzia tra diversi marcatori in Maps API v2 (identificatori univoci)
- 27. uscita imprevisto dalla lista (generatore)
- 28. Come serializzare una mappa come lista usando Jackson
- 29. Java 8 lista alla mappa annidata
- 30. Fluent NHibernate - Mappa una lista di stringhe
Way per ottenere una risposta al skeet! – chiliNUT