27. april 2005 - 20:34
Der er
25 kommentarer
lagring i hukommelse
hvad er forskellen på array, arraylist, vektor og hashmap.. hvad er fordelene og ulemperne..
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
27. april 2005 - 20:38
#1
array = et antal elementer af en type, ved new kan du bestemme hvor mange elementer men derefter ligger det fast, elementerne nummererer 0..n-1 ArrayList =et dynamisk array som automatisk udvider sig efter behov, men stadig nummererer elementerne 0..n-1 HashMap = en struktur hvor du kan gemme key value pairs og kan slå values op på key (i modsætning til de 2 andre hvor man altid slår op med indexet som er 0..n-1)
27. april 2005 - 20:38
#2
Et array har en forud-defineret størrelse - det har en ArrayList ikke (den er dynamisk). En vektor er det samme som en ArrayList så vidt jeg ved. Mht. HashMap, så må jeg melde pas :)
27. april 2005 - 20:38
#3
Sørens - for sent :)
27. april 2005 - 20:40
#4
array: fordele - hurtigt ulemper - fast størrelse efter new, kun opslag på nummer ArrayList: fordele - dynamisk udvidelse ulemper - stadig kun opslag på nummer HashMap: fordele - opslag på alle slags keys inklusive String ulemper - mere besværlig at løbe igennem for alle elementer
27. april 2005 - 20:41
#5
så er hashmap ligesom array, bare med key
27. april 2005 - 20:42
#6
Hvis du kender PHP: Java ArrayList = PHP indexed array Java HashMap = PHP associativt array
27. april 2005 - 20:43
#7
"bare" ved jeg ikke om er godt udtryk - forskellen er ofte ret stor - men ja
27. april 2005 - 20:43
#8
med arraylist kan man gennemløbe data, men med hashmap tager man en element af gangen eller hva..
27. april 2005 - 20:45
#9
Jeg vil da gætte på at du kan iterere igennem begge dele. På et array kan du fx gøre brug af en såkaldt Enumerator
27. april 2005 - 20:45
#10
der står en anden java bog jeg har hashtabel... det er det samme som hashmap ikke også??
27. april 2005 - 20:45
#11
Du kan gennemløbe en ArrayList næsten ligesom et simpelt array. Du kan også gennemløbe en HashMap, men så skal du lave en iterator over keys og løbe den igennem.
27. april 2005 - 20:47
#12
Hashtable og HashMap er næste det samme. Der er kun lille forskel med hensyn til den, måde hvorpå de er beskyttet i multithreaded context.
27. april 2005 - 20:47
#13
hvad betyder det
27. april 2005 - 20:48
#14
Kode eksempel på gennemløb af HashMap: Iterator it = map.keySet().iterator(); while (it.hasNext()) { String key = (String)it.next(); Integer value = (Integer) map.get(key); System.out.println(key + "->" + value); }
27. april 2005 - 20:52
#15
tak for hjælpen.. får i så automatisk 200 point eller skal jeg uddele det på en eller anden måde
27. april 2005 - 20:53
#16
næh vi skal ligge et decideret svar som du så kan acceptere her er fra mig
27. april 2005 - 20:56
#17
Giv du dem bare til Arne. Han trak det tunge læs :)
28. april 2005 - 00:28
#18
hastighedsmæssigt er der vel også stor forskel hvis man har brug for at slå op på et enkelt object. Hvor man i en ArrayList skal løbe alle objecterne igennem tager det O(n) hvor n er antal af objecter, mens en Hashtable kan gøre det på O(log(n)) tid
28. april 2005 - 02:07
#19
En fordel med HashMap er også at det er hurtigere at slå sine elementer op.
28. april 2005 - 07:37
#20
Afhænger af. situation 1) array/ArrayList : kender index HashMap : det man kender er key array/ArrayList er marginalt hurtigere situation 2) array/ArrayList : kender ikke index HashMap : det man kender er key HashMap er meget hurtigere situation 3) array/ArrayList : kender index HashMap : det man kender er ikke key array/ArrayList er meget hurtigere situation 1) array/ArrayList : kender ikke index HashMap : det man kender er ikke key array/ArrayList er marginalt hurtigere
28. april 2005 - 07:38
#21
Det bedste valg afhænger af hvad man kender (skal slå op med)
28. april 2005 - 07:39
#22
Iøvrigt er HashMap ikke O(log(n)) men O(1) når man har en god hash funktion
24. juli 2005 - 17:26
#24
??
30. september 2005 - 11:55
#25
Kurser inden for grundlæggende programmering