Jämförelse (int a !=null)
Hej! Varför fungerar inte denna jämförelse? Och har någon förslag på alternativ som istället kan användas? Jag vill med koden säga: "så länge det finns ett värde på detta index skall ett slumptal genereras", hur kan man uttrycka detta? (Ni behöver inte bry er om övrig kod)
En int kan aldrig vara null, det är en primitiv och inte ett objekt.
Jag fattar din beskrivning som att du vill skapa slumptal, kolla om platsen i den 2-dimensionella matrisen board är ledig, och i så fall stoppa in något där. Annars dra nya slumptal. Nåt i den här stilen:
while (true) {
int randR = rand.nexInt(size);
int randC = rand.nexInt(size);
if (board[randR][randC] == null) { // check if slot is free
board[randR][randC] = stack[i]; // yes, assign and break loop
break;
}
}
Tack så mycket! Om jag förstår dig rätt så kan objekteten i en array kan vara null, vilket då signalerar en ledig plats?
Det kan man säga, ska man vara petig är det referensen (till objektet) som är null.
Objekten ligger i minnet på olika adresser. Referensen pekar på minnesadressen. Till exempel:
Ball redBall = new Ball("red");
Ball blueBall = new Ball("blue");
skapar två objekt. Dvs två minnesareor allokeras och initieras. Variablerna redBall och blueBall är referenser till dessa. Om vi sen gör
blueBall = redBall;
så kommer båda variablerna att referera samma objekt, dvs peka på samma minnesblock (och minnesblocket för det som blueBall tidigare pekade på kommer att städas bort av GC:n, garbage collector, för återanvändning).
Tack så mycket för din tid och hjälp!