JAVA Random probleempje !!!

Pagina: 1
Acties:

  • Nariman
  • Registratie: November 2001
  • Laatst online: 31-01-2024
Hoi,

Ik ben een vragensysteem aan het maken in JAVA voor een schoolproject en ik heb een probleempje.

Ik heb die vragen in een Array gestopt. Die vragen moeten random op het scherm verschijnen en moeten natuurlijk niet 2x getoond worden. Het random op scherm laten verschijnen van vragen lukt me wel, maar dat ze niet 2x voorkomen lukt me niet.

Kan iemand mij vertellen hoe dit moet ( Uitleg, Voorbeeld of een link naar een andere bron)?

Alvast bedankt ! *D

  • drice
  • Registratie: December 2000
  • Laatst online: 18-12 13:11

drice

Loading...

-->P&W

Dan zul je moeten bijhouden welke vragen je al hebt gehad.
Wat je volgens mij ook kan doen is de vragen in een HashTable zetten en zodra je de vraag op het scherm hebt gezet de HashTable inhoud op false zetten.
Weet ook niet precies hoe maar hoorde het gisteren op school

Did you know that IF is a middle word in life. "Ja maar wie ben ik om aan mezelf te twijfelen"


  • DR
  • Registratie: December 2000
  • Niet online

DR

-->P&W

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Haal ze gewoon uit je array :) en maak je array dan element korter.
Het makkelijkst kun je dat doen door ergens een variabele bij te houden met de lengte van de array. De laatste vraag (waar de lengte variabele naar verwijst) te kopieren naar de positie waar de laatst gestelde vraag stond en de lengte variabele 1 te verlagen..

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op vrijdag 30 november 2001 10:11 schreef drice het volgende:
-->P&W

Dan zul je moeten bijhouden welke vragen je al hebt gehad.
Wat je volgens mij ook kan doen is de vragen in een HashTable zetten en zodra je de vraag op het scherm hebt gezet de HashTable inhoud op false zetten.
Weet ook niet precies hoe maar hoorde het gisteren op school
vragenHashMap = new HashMap();

//nu stop je in de hashmap true bij een vraag zodat hij gemarkeerd is.
vragenHashMap.put(vraag,new Boolean(true));
en false gaat net zo :)

als je wilt controleren of een vraag is geweest doe je:
Boolean b = vragenHashMap.get(vraag);
if(b == null)
...niet gevonden (initalisatie van je vragenhashmap was niet goed.
else
{
boolean vraagAlEerderGeantwoord = b.boolValue();//gelook ik :)
}



maar zolang je niet zelf een hashcode maakt voor een Vraag object, moet je ervoor zorgen dat je maar 1 keer een vraag voor iets maakt. Anders zal dat nieuwe object een andere hashcode genereren dan de oude. (Hashcode bij objecten die gebruik maken van object zijn hashcode doen dit op basis van hun adres).

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Een Vector gebruiken kan natuurlijk ook :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op vrijdag 30 november 2001 10:32 schreef wasigh het volgende:
Haal ze gewoon uit je array :) en maak je array dan element korter.
Het makkelijkst kun je dat doen door ergens een variabele bij te houden met de lengte van de array. De laatste vraag (waar de lengte variabele naar verwijst) te kopieren naar de positie waar de laatst gestelde vraag stond en de lengte variabele 1 te verlagen..
Pak dan een arraylist of iets van dien aard. Een array korter maken is vrij omslachtig.

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op vrijdag 30 november 2001 10:34 schreef Alarmnummer het volgende:

[..]

Pak dan een arraylist of iets van dien aard. Een array korter maken is vrij omslachtig.
Ik zou zelf ook een Vector pakken oid, maar de manier die ik beschreef werkt ook goed. En wat ik doe is niet de array korter maken. Ik verander de variabale lengte (niet array.length) en schrijf alles wat ik al gehad heb voorbij die variabele.
In plaats van array.length pak ik dan de waarde van de variabele lengte. Dat de array groter is als dat die variabele aangeeft boeit niet zo. Zo zit je niet met het steeds verkleinen van je Vector en heb je zo min mogelijk overhead met casten en dergelijke.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op vrijdag 30 november 2001 10:47 schreef wasigh het volgende:

[..]

Ik zou zelf ook een Vector pakken oid, maar de manier die ik beschreef werkt ook goed. En wat ik doe is niet de array korter maken. Ik verander de variabale lengte (niet array.length) en schrijf alles wat ik al gehad heb voorbij die variabele.
In plaats van array.length pak ik dan de waarde van de variabele lengte. Dat de array groter is als dat die variabele aangeeft boeit niet zo. Zo zit je niet met het steeds verkleinen van je Vector en heb je zo min mogelijk overhead met casten en dergelijke.
zo kan het inderdaad ook :)
Pagina: 1