broke31 ha scritto:
ho quindi fatto un arrayList
dichiarato nel seguente modo
ArrayList<String> insiemeDiStringhe=new ArrayList<String>();
quindi è parametrico... presumo giusto??
Sì, così è "parametrizzato". Quindi non hai bisogno dei cast espliciti.
Pertanto:
if (insiemeDiStringhe.get(i).compareTo(insiemeDiStringhe.get(j)) > 0)
broke31 ha scritto:
ho anche un altro dubbio mettiamo caso che devo effettivamente scambiare i due oggetti a fine procedura lo scambio sarà ancora valido?? in sostanza non è che finisce la funzione e quindi non ha alcun'effetto?? come quando in c scambi due variabili per valore..
Non ho ovviamente visione del codice di swapper:
swapper(insiemeDiStringhe.get(i),insiemeDiStringhe.get(j));
Ma .... così è sicuramente errato. Perché a swapper stai passando una
copia dei riferimenti ai due oggetti. Anche se in swapper scambi parametro1 <---> parametro2, stai alterando solo i due parametri ... NON il contenuto del ArrayList.
Se vuoi alterare il contenuto di ArrayList devi usare il suo metodo set. E ti lascio anche un indizio interessante: se guardi la documentazione javadoc e vedi
cosa restituisce set, riesci a fare lo scambio senza variabili di appoggio!