Java-ban hogyan rendezzek kettő Arraylistot?
Van egy "list1", amiben stringek vannak, és egy list2 amiben számok. A list2-ben lévő számok jelzik, hogy a list1-ben lévő stringből hány db-van.
List1 List2
"alma" 5
"korte" 3
"dio" 7
A list2 kellene rendezni csökkenő sorrendbe, és ezzel párhuzamosan a list1-be lévő stringeket is sorba rendezni.Eredmény így kellene kinézzen:
List1 List2
"dio" 7
"alma" 5
"korte" 3
For ciklussal kellene megoldani.
"For ciklussal kellene megoldani."
Akkor rajta.
Aki nem ért hozza, nem igazán értem miért válaszol :D
Simán egy lista rendezése for ciklussal nem ördöngös.
Dupla for ciklusban gondolkodom, csak azt nem tudom hogy oldjam meg, hogy amikor a list2-ben megkapom az első MAX értéket, és azt a lista elejére teszem, akkor a list1-ben is cserélődjön.
Amennyiben lehetséges nem szeretnék MAP-ot használni.
Hát figyelj, ha egy listára tudsz írni rendezést, akkor egy másik listát is tudsz vele rendezni párhuzamosan.
Hiszen az egyik listát hogy rendezed, mi a fő lépés belül? Megcserélni lista1[i]-t lista1[j]-vel. Nem ördöngösség melléírni, hogy ugyanmár cserélje meg ugyanígy lista2-ben is lista2[i]-t lista2[j]-vel. :)
Alapból teljesen rossz az elképzelés, nem 1978 van.
A Java objektumorientált nyelv, tessék az összetartozó adatokat egy objektumba tenni és egyben kezelni.
Tádá, probléma meg is oldódott...
#4 Teljesen jogos a felvetésed, ésszerű gondolkodás mellet úgy kellene megoldani.
#5 Ráhibáztál. Ez lenne a "feladat".
Tudsz listát rendezni ciklussak de nem tudod megírni hogy a másik listát párhuzamosan kezelje. Hát ez fenomenális :D
Na de ha pl buborékrendezést használsz, és van egy swap(elem1, elem2, lista) fv-ed, ami megcserél 2 elemet a listádban akkor csak:
swap(szam1, szam2, list2);
swap(sztring1, sztring2, list1);
Lényegében a számok alapján csinálod a rendezést, csak mindkét listán.
"csak azt nem tudom hogy oldjam meg, hogy amikor a list2-ben megkapom az első MAX értéket, és azt a lista elejére teszem, akkor a list1-ben is cserélődjön."
mondjuk úgy, hogy ugyanazt csinálod a list2-vel, mint a list1-gyel, érthetetlen, hogy ezen mi nem megy..
Lenne egy másik kérdésem is. Ez már kicsivel konkrétabb.
Hogyan tudok betenni egy ArrayList bizonyos pozíciójába egy értéket?
Kivenni a list.get(i)-vel csináltam.
Hogyan tudnék most a lista (i)-ik pozíciójába írni?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!