JensGustavsson.se
Förstasidan | Arkiv | Artiklar | CodeCompanion | Länkar | Vem är Jens Gustavsson?
Förstasidan : januari 2005 : Article

Ny for-loop I Java 1.5

Java 1.5 har en ny for-loop som jag tycker är kanonbra. Med den kan man loopa över alla element i en array eller en collection utan något krångel med iteratorer. Så här ser det ut:

ArrayList<Groda> grodlista = new ArrayList<Groda>();
grodlista.add(new Groda());
grodlista.add(new Groda());

for(Groda b : grodlista) {
    b.hoppa();
}

int[] heltalsarray = new int[]{21, 46, 12};

for(int tal : heltalsarray) {
    System.out.println(tal);
}

Till höger i parentesen skrivs alltså den array eller collection som man ska loopa över elementen i. I mina exempel är det grodlista respektive heltalsarray. Till vänster i parentesen deklarerar man en variabel som ska få värdet av vart och ett av elementen. Och i mitten sätter man ett kolon.

Jag tycker att den nya for-loopen är ett exempel på en jättebra språkkonstruktion. Att loopa över alla element i en array eller collection är otroligt vanligt. Därför är det bra att det finns ett bekvämt sätt att göra det på. Men det är minst lika viktigt att programmen blir tydligare i och med att man fått ett kortfattat och tydligt sätt att tala om att man vill just loopa över alla element. Den enda kritik jag sett mot den nya for-loopen är att den borde heta "foreach" istället och att kolonet borde bytas mot ordet "in". Att man valt att inte ha det så beror på att det skulle ställa till problem för existerande program som innehåller dessa ord. Loopa lugnt!