Visualizzazione dei risultati da 1 a 2 su 2

Discussione: metodo in un metodo

  1. #1
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177

    metodo in un metodo

    Ciao devo svolgere un esericzio che ordina gli elenti in un arrayList per volume...il metodo deve essere scritto così:
    public void ordina()
    Ora dopo vari vani tentativi sono riuscito a trovare su un sito la risoluzione(penso)del mio problema.:
    codice:
     public void ordina(){
         Collections.sort(cc, new Comparator<Collo>() {
              @Override public int compare(Collo p1, Collo p2) {
                return (int)(p1.getVolume()- p2.getVolume());
    }
    });
    }
    Tutto viene compilato correttamente..ma non c'è un altro modo piu semplice per risolvere questo esercizio,senza usare il metodo compare() nell metodo sort()?la mia risoluzione mi sembra un po complicata
    Ultima modifica di el92; 03-03-2016 a 17:34

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da el92 Visualizza il messaggio
    ma non c'è un altro modo piu semplice per risolvere questo esercizio,senza usare il metodo compare() nell metodo sort()?
    No, non c'è. Stai comparando oggetti di un tipo specifico, particolare (Collo). Il framework non saprebbe certo quale criterio utilizzare! Fornisci tu il criterio appunto come implementazione del Comparator andando poi a confrontare su quel "volume".
    Ah, generalmente sarebbe meglio evitare la comparazione per sottrazione. Meglio l'uso degli operatori < e > usando anche l'operatore condizionale ?:
    In alternativa da Java 7 in Integer c'è il public static int compare(int x, int y) che può essere di aiuto.

    Quote Originariamente inviata da el92 Visualizza il messaggio
    la mia risoluzione mi sembra un po complicata
    Forse non sei pratico/abituato alle (anonymous) inner-class. Comunque è una soluzione tecnicamente valida e assolutamente "comune".
    Se puoi usare almeno Java 8 puoi sfruttare una lambda expression per ridurre e rendere più leggibile la comparazione.
    Ultima modifica di andbin; 03-03-2016 a 17:56
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.