Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Ordinamento oggetto

  1. #1

    Ordinamento oggetto

    Ciao a tutti volevo ordinare degli oggetti di tipo Squadra con string nome e int punteggio dentro ad un array....l'ordinamento è per punteggio, tramite buble sort ho provato ad ordinare ma niente, volevo se riuscite a darmi una mano nei due metodi per ordinare.....uno tramite compareTo e uno con un metodo mio Buble sort..(se potete gentilmente )...mando il codice.

    Classe Squadra :


    public class Squadre implements Comparable<Squadre> {
    public int punteggio;
    public String nome;
    Squadre f[]=new Squadre[3];



    public Squadre(int punteggio, String nome) {
    this.punteggio = punteggio;
    this.nome = nome;
    }

    public int getPunteggio() {
    return punteggio;
    }

    public void setPunteggio(int punteggio) {
    this.punteggio = punteggio;
    }

    public String getNome() {
    return nome;
    }

    public void setNome(String nome) {
    this.nome = nome;
    }




    @Override
    public String toString() {
    return "" + nome + " " + punteggio +"";
    }






    @Override
    public int compareTo(Squadre f){
    return nome.compareTo(f.nome);

    }






    }

    //
    il Main :
    //
    public class Main1 {
    Squadre f[]=new Squadre[3];
    Squadre s=new Squadre(0,"");


    public static void main(String[] args) {

    Squadre f[]=new Squadre[5];


    f[0]=new Squadre(3,"Parma");
    f[1]=new Squadre(6,"Lazio");
    f[2]=new Squadre(4,"Genoa");
    f[3]= new Squadre(8,"Sampdoria");

    f[4]=new Squadre(2,"udinese");




    Arrays.sort(f);
    for(int i=0;i<f.length;i++){System.out.println(f[i]);}





    }





    }

    quindi col compareTo sono riuscito ad ordinare per ordine alfabetico..ma mi interessa ordinare in modo crescente e decrescente tramite il punteggio .... due settimane che provo...grazie a tutti

  2. #2
    Il tuo "problema" è come hai implementato il compareTo. In questo caso tu confronti i nomi e hai, ovviamente, le squadre ordinate alfabeticamente.

    Basta modificare il metodo compareTo.
    Ordine decrescente:
    codice:
    public int compareTo(Squadre f){
        if (punteggio > f.punteggio) return -1;
        else return 1;
    }
    Ordine crescente:
    codice:
    public int compareTo(Squadre f){
        if (punteggio < f.punteggio) return -1;
        else return 1;
    }

  3. #3
    grazie...volevo chiedere un'altra cosa..se volessi non implementare compareTo ma fare un metodo mio con buble sort?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Jdistu
    grazie...volevo chiedere un'altra cosa..se volessi non implementare compareTo ma fare un metodo mio con buble sort?
    Se non vuoi/puoi usare il sort() (di Arrays o Collections) del framework e vuoi invece implementare tu uno dei noti algoritmi di ordinamento (es. appunto bubble-sort) sfruttando Comparable .... beh, ovviamente puoi farlo.

    Qualunque dei noti algoritmi arriva ad un certo punto a confrontare 2 elementi e in base al risultato opera di conseguenza. Nel tuo caso gli elementi saranno ovviamente oggetti e quando la tua implementazione di bubble-sort arriva a comparare 2 oggetti a e b, su uno invocherai compareTo passando come argomento l'altro.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    grazie a tutti

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 © 2025 vBulletin Solutions, Inc. All rights reserved.