System.out.println pretvara objektat koji mu se pošalje u stiring oblik tako što pozove toString metodu koju ima svaki objekat (tj. ta je metoda definisana u Object klasi koju nasleđuje svaka klasa u javi). Ta metoda podrazumevano ispisuje koje je klase objekat i njegovu adresu. Problem s nozovima je što su oni malo specijalni objekti i kod njih toString nije redefinisan pa ne ispisuje elemente niza kako bi to svako razuman očekivao. A opet kod kolekcija toString radi kako treba. Ma to je java, puna je debilizama.
E posle su se u nekoj od novijih verzija setili da kad već nisu uradili toString kako treba, napišu pomoćnu metodu za pretvaranje niza u string (prethodno ih je Bruce Eckel u Misliti na javi propisno iznapušavao). To su one Arrays.toString metode, čak sam i sam na njih zaboravio :) Tako da onaj kod može biti skraćen na:
Code:
import java.util.Arrays;
import java.util.Collections;
public class Test {
public static void main(String[] args) {
Integer [] testNiz = {1,7,3,9,6,5,8,2,4};
Arrays.sort(testNiz);
System.out.println(Arrays.toString(testNiz));
Arrays.sort(testNiz, Collections.reverseOrder());
System.out.println(Arrays.toString(testNiz));
}
}
A ona čudna for petlja se zove foreach. To je samo lakši način da se prođe kroz sve elemente niza (radi i na listama) bez drndanja sa indeksima. Novina u javi 1.5.
Bolje džaba ležat nego džaba radit.