webForumDet fria alternativet

Använda denna kod med arrays istället för arraylist

Java

3 svar · 399 visningar · startad av xcalibrate

Medlem sedan aug. 2002136 inlägg
Frågan#1

private Konto hittaKonto(String agare) { // retunerar null om ej finns
int i = 0;
Konto k = null, tmp;
while(k == null && i < konton.size()) {
tmp = (Konto) konton.get(i);
if(agare.compareTo(tmp.agare()) == 0)
k = tmp;
i++; // obs glom ej!!
}
return k;
}

Koden ovan använder arraylist. Jag använder String[] Konton = {...};

Hur gör jag om jag vill göra så med min Konton istället. Eftersom .get och .size (length antar jag) finns ju inte i String.

Medlem sedan jan. 20021 122 inlägg
#2

I en array så finns det istället för size() variabeln length, och istället för get(i) använder man varNamn.
Nu innehåller inte din kod alla variabler du använder, så det är svårt att visa hur man gör med ditt exempel, men generellt så blir det så här:

for(int i = 0; i < minArray.length; i++) {
 System.out.println(minArray[i]);
}

Detta skriver ut alla element i minArray

Medlem sedan sep. 2001961 inlägg
#3

Ehe!? Varför array?? Varför inte lagra det i en HashMap eller liknande?? Kontonummret är ju en nyckel och då får man ju direkt träff eller inte träff...

Medlem sedan jan. 20023 327 inlägg
#4

Precis som Lime säger är det bättre med en hashmap, visserligen har en array random access men det hjälper inte om du inte vet var i arrayen datan finns eftersom sökningen ändå blir sekvensiell. Detta går i och för sig att optimera med algoritmer men inte att tänka på i detta fall.

Gör som Lime säger, använd HashMap :)

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)