Archief - List in kolommen 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.

nck2040

Legacy Member
Ik ben terug even bezig in JAVA. Nu stoot ik op een klein probleempje dat waarschijnlijk simpel op te lossen is met een lus maar ik kom er toch niet echt aan uit.

Dus ik heb een List aangemaakt en die moet nu in de console afgedrukt worden in rijen van 4/kolommen.

Dus ik krijg nu bv.

[woord woord woord woord woord woord woord woord]

en het zou moeten zijn

woord woord woord woord
woord woord woord woord

dus iemand die mij hier de toString() methode van kan geven?

Cycloon

Legacy Member
Denk gewoon eens wat harder na, kijk bv naar volgend voorbeeld:

[ 1 2 3 4 5 6 7 8 9 10 11 12 ]

wordt

[ 1 5 9 ]
[ 2 6 10 ]
[ 3 7 11 ]
[ 4 8 12 ]

Dan heb je nog het volgende:
Er zijn 3 kolommen en 4 rijen. (Hint # items is 12 en er zijn 3 kolommen).

Met deze informatie heb je normaal genoeg om een eenvoudige forlus te schrijven. Als je begint om de eerste rij te vormen is de rest peanuts.

nck2040

Legacy Member
Bedoel je dan in de richting van een twee dimensionale array?

Cycloon

Legacy Member
Uiteindelijk zet je dat om in een 2D array, ja. Maar je moet dit niet "echt" doen natuurlijk. De tactiek is echter wel dezelfde.

Maar probeer gewoon de eerste rij op te stellen zonder forlus. Kijk welke items je moet selecteren in de lijst om die eerste rij op te stellen en probeer de indexen mathematisch te bepalen adhv de eerste positie en een combinatie van het aantal elementen en aantal kolommen die je wil bekomen.

nck2040

Legacy Member
Heb

Code:
public String toString() {
        String ret = "";
        int i = 0;
        for(String s : lijst){
            ret += String.format("%-15s ",s);
            ret += (++i%4==0)?"\n":"";
        }
        return ret;
    }

teruggevonden in mijn oefeningen. Kdenk wel dat ik het ongeveer begrijp ^^

Cycloon

Legacy Member
Dat stukje code schrijft uiteraard wel uit in rijen en niet in kolommen...

nck2040

Legacy Member
Welja maar het gaat em in dit geval gewoon om het optische denk'k

voltje

Legacy Member
Ik denk dat het vooral gaat over het snappen van de logica, en niet over "hoe tof het er uit ziet" :-)
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