2012-05-03 11 views
5

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?

+0

Way per ottenere una risposta al skeet! – chiliNUT

risposta

11

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.

4

Map è per il tipo di dati di coppia Key:Value.for esempio se si desidera mappare i numeri di rotolo degli studenti ai loro nomi.

List è per la raccolta ordinata di elementi che consentono duplicati. ad esempio per rappresentare l'elenco dei nomi degli studenti.

0

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.

1

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.

1

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

+0

HashMap e LinkedList sono implementazioni dell'interfaccia Mappa ed Elenco, sono solo un caso specifico di tali raccolte. –

+0

@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

1

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.

0
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))

Problemi correlati