I de fleste eksemplene nedenfor lager vi ikke noen uttegninger. Vi skriver direkte til consolet (feltet under editoren)
Array
Vi setter først opp en enkel array av heltall, setter inn verdier og skriver dem ut.
/*
En array er en ordnet saamling, liste,
av variable av samme type
*/
// vi vil lage en rekke med heltall
int[] tallRekke;
void setup(){
// lager ferdig en rekke med plass til 3 heltall
tallRekke=new int[3];
// putter verdier inn i rekka
// første posisjon i rekka er alltid 0
tallRekke[0]=21;
tallRekke[1]=212;
tallRekke[2]=210;
}
void draw(){
// skriver til consolet i en for-løkke der
// index++ betyr det samme som index=index+1
for(int index=0; index < tallRekke.length; index++){
println(tallRekke[index]);
}
noLoop();
}
Array er en enkel struktur. Vi kan lage arrays av hvilke typer data vi vil. Alle elementene må være av samme type. Vi kan bytte innholdet på et sted i arrayen, f.eks tallRekke[2]=7; Ulempen med array er at de er ganske stivbente når det gjelder størrelsen.
Vi må bestemme oss for hvor mange elementer vi skal ha plass til når vi oppretter den.
Vi kan også lage arrayer med mer enn en dimensjon. Et enkelt eksempel:
// tabeller
String[][] tabell;
int antallRader=5;
int antallKolonner=8;
void setup(){
size(200,200);
// klargjør tabellen
tabell=new String[antallRader][antallKolonner];
for(int r=0; r < antallRader;r++){
for(int k=0; k < antallKolonner;k++){
tabell[r][k]=str(r)+str(k);
}
}
}
void draw(){
background(255);
fill(0);
for(int r=0; r < antallRader;r++){
for(int k=0; k < antallKolonner;k++){
text(tabell[r][k],20+k*20,50+r*20);
}
}
}
Som gir følgende output
ArrayList
ArrayList er en langt mer fleksibel konstruksjon. Her kan vi legge til, fjerne og bytte ellementer etter behov, men det er fortsatt slik at vi må ha samme type element i alle plassene. (dette er en sannhet med modifikasjoner,
men en drøfting av dette hører ikke hjemme her).
/*
En ArrayList er en dynamisk liste
Der vi kan fjerne og sette inn elementer hvor vi vil
*/
// vi vil lage en rekke med heltall
// merk at vi skriver Integer, ikke int
ArrayList<Integer> tallRekke;
void setup(){
// lager ferdig en tom rekke med ubegrenset
// utvidelsesmuligheter
tallRekke=new ArrayList<Integer>();
// putter verdier inn i lista
tallRekke.add(21); // sist
tallRekke.add(22); // sist
tallRekke.add(0,20); // i posisjon 0, dvs først
}
void draw(){
// skriver til consolet i en for-løkke der
// index++ betyr det samme som index=index+1
for(int index=0; index < tallRekke.size(); index++){
println(tallRekke.get(index));
}
// eller en enklere form
// for alle tall t i lista
println("------------");
for(int t:tallRekke){
println(t);
}
noLoop();
}
Stringlist
I tillegg til ArrayList vi du finne en rekke spesialiserte lister. Disse er spesialiserte fordi ulike elementtyper kan behandles på forskjellig måte. For eksempel har vi noe som heter StringList for å ta vare på tekster.
En StringList har da blandt mye annet funksjonalitet for å sortere lista alfabetisk.
/*
En StringList er en spesialisert ArrayList
Der vi kan fjerne og sette inn elementer hvor vi vil
og vi her en del tilleggsmuligheter som lar seg realisere
fordi vi vet at alle elementene i lista er tekster
Her viser vi sortering
*/
// vi vil lage en liste med navn
StringList navn;
void setup(){
// lager en liste
navn=new StringList();
// legger til verdier i lista
navn.append("Ole");
navn.append("Atle");
navn.append("Jens");
}
void draw(){
// sorterer og skriver til consolet
navn.sort();
// for alle tall n i lista
for(String n:navn){
println(n);
}
noLoop();
}
Vi kan gjøre mye annet med lister av ulik type, og vi har også andre måter å gruppere elementr på en rene lineære lister. Sjekk dokumentasjonen.