Kezdőoldal » Számítástechnika » Programozás » Java programozási nyelvben...

Java programozási nyelvben hogyan kell létrehozni olyan ArrayList-et, aminek elemei (egy saját class) tömböt (int[][]) és Stringet tartalmaznak?

Figyelt kérdés

[link]

Ezen a linken elérhető a forráskódom, ami nem fut le ezen az oldalon mert külső adatot kéne használni. A megoldas.txt eleje a következő:

10

Absolon

0 0 0 0 11 0 11 0 0 0

11 0 2 0 0 0 0 0 0 0

0 0 0 0 0 1 0 11 0 0

0 0 0 11 0 0 0 0 0 0

0 3 0 0 0 0 0 0 11 0

0 0 0 0 2 0 11 0 0 0

0 11 0 0 0 0 0 0 3 0

0 0 0 0 0 0 3 0 0 0

0 11 0 3 0 0 0 0 11 0

0 0 0 0 0 0 11 0 0 0

Agaton

0 0 0 0 11 0 11 0 0 11

11 0 2 0 0 0 0 0 0 0

0 0 0 0 0 1 0 11 0 0

0 0 0 11 0 0 0 0 0 0

0 3 0 0 0 0 0 0 11 0

0 0 0 0 2 0 11 0 0 0

0 11 0 0 0 0 0 0 3 0

0 0 0 0 0 0 3 0 0 0

0 11 0 3 0 0 0 0 11 0

0 0 0 0 0 0 11 0 0 0


Ez egy név és hozzá egy 10*10-es tábla, aminek elemeit el kéne tárolni. A fenti forráskód hibája, hogy végeredményül valamiért az összes class-omban a táblázat teljesen megegyezik, nem tárol el csak 1-et (az utolsóét).



2017. márc. 14. 16:31
 1/1 anonim ***** válasza:

Nem tudom, hogy mennyire vagy kezdő programozó, de nálam ez a hiba benne van a "Top1 miért nem jó programozási nyelv kezdőknek a Java/C#/egyéb felügyelt nyelv." listámban.


A baj az, hogy a megoldas konstruktorában azt írod, hogy tomb=feladat. A feladat egy kétdimenziós tömb, ami azt jelenti, hogy tömbök tömbje, azaz tulajdonképpen egy olyan tömb, ami tömböket tartalmaz. Azaz a feladat tömbödben a többi tömbnek a memóriacímét tárolja el, és amikor te a megoldasTomb-öt átadod a konstruktornak, akkor csupán a megoldasTomb-ben lévő többi tömb memóriacímét másolod át. Azonban a beolvasós ciklusodban végig ugyanannak a memóriacím alatti tömbnek (megoldasTomb) az értékeit írod felül.


Ahhoz, hogy ezt orvosold, a megoldas konstruktorában ciklussal másolatot (klónt) kell készítened a feladat tömbről:


megoldas (int[][] feladat, String neve){

tomb = new int[10][];

for(int i = 0; i < 10; i++){

tomb[i] = feladat[i].clone();

}

nev = neve;

}

2017. márc. 16. 12:19
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!