Visualizzazione dei risultati da 1 a 10 su 14

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    ah quindi utilizzando il metodo sort (che sia quello di Arrays oppure quello di Collections) io non "vedo" quello che accade, la cosa che devo fare è solo invocarlo passandogli in input l'array da ordinare e il comparatore (praticamente l'oggetto della classe che implementa Comparator).
    Ad esempio:
    codice:
    import java.util.Arrays;
    
    public class Classe {
        public static void main(String args[]) {
            Integer []array = {1942, 1947, 1971, 1984, 1976, 1974};
            Arrays.sort(array, new IntegerComparator());
            ...
            }
        }
    }
    Poi una volta fatto questo vado a creare la classe che implementarà Comparator e all'interno di questa classe andrò a fare l'override di compare.
    Ad esempio:
    codice:
    import java.util.Comparator;
    
    public class IntegerComparator implements Comparator<Integer>{
        @Override
        public int compare(Integer o1, Integer o2) {
            return ... ;
        }   
    }
    Il resto lo fa sort. Giusto?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da newutente Visualizza il messaggio
    ah quindi utilizzando il metodo sort io non "vedo" quello che accade
    Non vedi nel senso che l'algoritmo può essere più o meno complesso e come è fatto alla fin fine poco importa (se è fatto bene, ovviamente). Per i sort del framework comunque i sorgenti ci sono.

    Quote Originariamente inviata da newutente Visualizza il messaggio
    la cosa che devo fare è solo invocarlo passandogli in input l'array da ordinare e il comparatore (praticamente l'oggetto della classe che implementa Comparator).
    Esatto.

    Quote Originariamente inviata da newutente Visualizza il messaggio
    Poi una volta fatto questo vado a creare la classe che implementarà Comparator e all'interno di questa classe andrò a fare l'override di compare.

    Il resto lo fa sort. Giusto?
    Esatto. Non stai implementando l'intero algoritmo di ordinamento ma solo la logica di comparazione tra due elementi. La logica del sort è sostanzialmente spezzata in due parti: una parte fissa/nota che è dovuta all'algoritmo di ordinamento ben preciso che ragiona solo in quel modo. Ma ad un certo punto dovrà comparare qualcosa e da solo non lo sa fare con gli oggetti. Quindi delega ad altro (Comparable/Comparator) implementato esternamente all'algoritmo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    Per quanto riguarda l'esempio precedente all'interno del metodo compare utilizza compareTo. Se compareTo appartiene all'interfaccia Comparable come fa ad utilizzarlo se implementa solo Comparator?

    Quote Originariamente inviata da andbin Visualizza il messaggio
    Per i sort del framework comunque i sorgenti ci sono.
    e dove sono? Io nella documentazione ho trovato solo i prototipi (si chiamano così) ma non il corpo dei metodi.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da newutente Visualizza il messaggio
    Se compareTo appartiene all'interfaccia Comparable come fa ad utilizzarlo se implementa solo Comparator?
    Non c'entra niente. Il compareTo lo stavi invocando su un Integer (uno dei parametri). Integer è Comparable e ha compareTo. E comunque in quel caso il compareTo lo stavi usando come un qualunque altro metodo.

    Quote Originariamente inviata da newutente Visualizza il messaggio
    e dove sono? Io nella documentazione ho trovato solo i prototipi (si chiamano così) ma non il corpo dei metodi.
    Se hai installato un JDK, nella "home" di installazione del JDK dovresti avere (a meno di averlo escluso in fase di setup) un src.zip .
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava 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 © 2026 vBulletin Solutions, Inc. All rights reserved.