Volledige versie bekijken : Java - Array of ArrayList ?



Fck_
17 May 2011, 16:36
Hallo,

Ik ben hier met iemand een 'EuroMillionsSimulator' aan het maken in Java. De bedoeling > Je geeft je getallen in, drukt op SIMULEER en de applicatie gaat blijven simuleren totdat je de 5 nummers en de 2 sterren juist hebt !

Maar nu zit ik met een vraag. Het zijn altijd 5 nummers en altijd 2 sterren. Het is dus niet nodig om met een ArrayList te werken? Maw, een Array is goed.. denk ik?

Maar dan moet ik twee Arrays kunnen vergelijken, of ze identiek zijn. Ik vind echter geen goede oplossing op het net -_-. Weet iemand hoe ik 2 Arrays vergelijk?

Ook, hoe print ik een Array makkelijk af? (iets van return this.array gaat niet, dan krijg ik het adres afgeprint..). Moet ik hier helemaal door gaan lopen en dan System.out.println.. ? Maar dit is dan toch moeilijker om mijn Arrays te vergelijken.. Geen idee :/

Alvast bedankt !

ultddave
17 May 2011, 16:56
ArrayList is de nieuwe Vector klasse in java. Dat zijn dus arrays met variabele lengte. Als je altijd maar een vast aantal elementen nodig hebt kan je dus gewoon best een gewone Array gebruiken.



int[] a = new int[3];
int[] b = new int[3];
for(int i = 0; i < a.length; ++i)
{
a[i] = i;
b[i] = i;
}

if(Arrays.equals(a, b))
System.out.println("Gelijk");
else
System.out.println("Niet gelijk");

Arrays vergelijken doe je met de Array.equals functie die 2 arrays als parameters verwacht. (Zoals hierboven)

(Deze moet ge dan wel importen "java.util.Arrays".)

import java.util.Arrays;

********

Inhoud van een Array element per element uitprinten:


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


Of in 1 keer uitprinten:

System.out.println(Arrays.toString(a));
Bovenstaande regel geeft de volgende output: [0, 1, 2] (inclusief de vierkante haakjes)

Mvg,
Dave

Fck_
17 May 2011, 17:11
Bedankt Dave, net wat ik nodig had! Was al lang aan het sukkelen met die Arrays :/

Dankje!

Fck_
17 May 2011, 17:38
Nog een klein vraagje. Hoe vergelijk ik dan 2 elementen in een Array ?

int a = 4;

for (int i = 0; i <= array.length; i++) {

if (array[i] == a) {

.. blijkt niet te werken ?


LAAT MAAR, Werkt wel! Zat gewoon met een indexOutOfBound =P. Dankje!

ultddave
17 May 2011, 17:47
2 elementen in dezelfde array?



if(mijnArray[index1] == mijnArray[index2])
// Elementen op index1 en index2 zijn gelijk
else
// Ze zijn niet gelijk


Stel dat ge wilt checken of het element op index 0 van array1 gelijk is aan element op index 5 van array2.



if(array1[0] == array2[5])
// Elementen zijn gelijk
else
// Ze zijn niet gelijk


Voorwaarde is dat de elementen in dit geval vergeleken kunnen worden met de "==" operator (bijvoorbeeld integers).


Code:
for (int i = 0; i <= array.length; i++) {

if (array[i] == a) {

.. blijkt niet te werken ?

Normaal gezien moet dat werken. Hij gaat dan kijken of er in de array het getal 4 (waarde van 'a') staat. Indien dat het geval is, zal hij in de if test gaan.


i <= array.length;
Niet <= gebruiken. Dan krijgt ge een ArrayIndexOutOfBoundException normaal gezien. Arrays in Java lopen van index '0' tot index 'array.length - 1'.

Dus tmoet i < array.length zijn. ;)

EDIT:
LAAT MAAR, Werkt wel! Zat gewoon met een indexOutOfBound =P. Dankje!
inderdaad :P.

Mvg,
Dave

Fck_
17 May 2011, 18:44
Toch bedankt Dave!

Mijn simulator is trouwens klaar nu =P. Hij bleef doordoen totdat hij 5 nummers EN 2 sterren goed had.
Het resultaat:

Aantal trekkingen: 133821402
Aantal keren 2 sterren goed: 2433218
Aantal keren 5 nummers goed: 56
Aantal keren alles goed: 1

'K denk da'k nooit rijk ga worden =P.

ultddave
17 May 2011, 19:14
Hehe XD.

Master diploma halen eh ;D, dan kunt na verloop van tijd wel rijk worden ;P.

Ma euromillions winnen zou idd wel handig zijn ^^

Mvg,
Dave

Fck_
17 May 2011, 19:40
Maar met rijk bedoel ik echt RIJK :p.