Archief - Java: ArrayList afdrukken..

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

MetalG

Legacy Member
Hallo,

ik ben aan het studeren voor mijn 2dezit java.. waar ik vroeger nog geen ArrayList kon definieren kan ik heb nu al opvullen. :)

maar hoe druk ik die af?

ik heb waarschijnlijk een ToString() functie nodig.

en ik heb ook een gewone array van 5 posities (omdat er max 5 begeleiders mogen zijn). maar als er maar 3 zijn ingechreven is pos 4 en 5 null.

en ik krijg dan een error bij het afdrukken.

ik had er dan dit van gemaakt:

Code:
public void drukAf()
{
	int i = 0;
	while(BegeleidingsOverzicht[i].toString() != "" && i<5) 
	{
		System.out.println(BegeleidingsOverzicht[i].toString());
		i++;
	}
}

Foutmelding die ik krijg:

Spanje
Exception in thread "main" java.lang.NullPointerException
	at examen.Docent.drukAf(Docent.java:38)
	at examen.Test.main(Test.java:13)

ArrayList code

Code:
EDIT
private ArrayList<Persoon> inschrijvingen = new ArrayList<Persoon>();

ik heb het nu gedaan met een iterator, maar hij drukt het object af.. :(

EDIT

public void drukinschrijvingenaf()
{
	Persoon s;
	Iterator e = inschrijvingen.iterator();
	System.out.println("Inhoud inschrijvingen");
	while(e.hasNext())
	{
		s=(Persoon)e.next();
		System.out.println(s);
	}

}

Hij lukt.. enkel nog de array zonder foutmelding :(

teh_NiHiLiM

Legacy Member
afdrukken van array(lists) is heel makkelijk met een for-each lus.

PHP:
public void drukAfInschrijvingen()
{
	System.out.println("Inhoud inschrijvingen:");

	for( Person s : inschrijvingen) { //loop door alle entries van de arraylist
			System.out.println(s.toString()); //afprinten
	}
}
werkt natuurlijk alleen als de klasse person een tostring methode heeft,
en inschrijvingen is een ArrayList, dus lengte past zich steeds aan.


je vraagstelling is heel verwarrend btw;
ik vermoed dat je over 2 verschilende methodes bezig bent?
een om de array van begeleiders te beheren, en een arrayLIST met alle inschrijvingen?

in geval van de array:
PHP:
public void drukAfBegeleiders()
{
	System.out.println("Begeleiders:");

	for( Person s : BegeleidingsOverzicht) { //loop door alle entries van de array
		if(s) { //check of entry ingevuld is
			System.out.println(s.toString()); //afprinten
		}
	}
}

Fraggie

Legacy Member
teh_NiHiLiM zei:
afdrukken van array(lists) is heel makkelijk met een for-each lus.

PHP:
public void drukAfInschrijvingen()
{
	System.out.println("Inhoud inschrijvingen:");

	for( Person s : inschrijvingen) { //loop door alle entries van de array
		if(s) { //check of er een waarde inzit
			System.out.println(s.toString()); //afprinten
		}
	}
}
werkt natuurlijk alleen als de klasse person een tostring methode heeft
Kan je die if (s) { .. } wat meer toelichten a.u.b.?

teh_NiHiLiM

Legacy Member
Fraggie zei:
Kan je die if (s) { .. } wat meer toelichten a.u.b.?

khad ge-edit :)
bij een ArrayList is da inderdaad nie nodig :crazy:
in geval van een Array zal telkens element van de array als argument gebruikt worden voor de if,
is er geen element, zal de null waarde toegewezen worden? ja toch ? :unsure:

Fraggie

Legacy Member
Interessante vraag eigenlijk. Hangt er vanaf waar die array gedeclareerd wordt en hoe ze ingevuld is & of er een default constructor is, imo?

MetalG

Legacy Member
dat is idd wel makkelijker:

ik drukte nu mijn array zo af, en ik kreeg de error ook niet meer:

PHP:
public void drukAf()
{

	for(int i = 0;i<teller;i++) 
	{
		System.out.println(BegeleidingsOverzicht[i].toString());
		i++;
	}
}

ik ga direct die code van u ook eens testen

bij:

PHP:
public void drukAfBegeleiders()
{
    System.out.println("Begeleiders:");

    for( Person s : BegeleidingsOverzicht) { //loop door alle entries van de array
        if(s) { //check of entry ingevuld is
            System.out.println(s.toString()); //afprinten
        }
    }
}

zegt hij cannot convert persoon into boolean

Timmos

Legacy Member
Lian-Li zei:
zegt hij cannot convert persoon into boolean
maak van die s "s != null"

Trouwens die for-each lus zal nu gewoon het object "persoon" afprinten en diens plaats in het geheugen enz. Je kan dit opvangen door in de klasse Persoon de toString() methode te overschrijven en je eigen output te retourneren (met de eigenschappen van die persoon bvb) :)

Jerre Muesli

Legacy Member
En alstublieft! Denk aan best practices en conventions.
BegeleidingsOverzicht.toString() != ""
??

constanten in hoofdletters
klasnamen beginnen met een hoofdletter + in camelcase
instanties van klassen en andere variabelen kleine letters + in camelcase

verder:
Als je strings of andere reference types gaat vergelijken met mekaar doe je dat met .equals() voor de inhoud. Doe je dat met ==, !=, ... dan vergelijk je de adressen/hashcodes van de objecten.

MetalG

Legacy Member
even meedelen, dat ik geslaagd ben voor Java in 2de zit ; )

heeft me zeer goed geholpen hier!

thx (mag dicht)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan