Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Problema ArraySort con Comparator

    Salve,
    stavo provando a ordinare un array utilizzando l' interfaccia Comparator ma non riesco a capire perchè mi da un ordinamento sbagliato.

    Il codice è questo, qualcuno può aiutarmi a capire dove sbaglio?

    codice:
    import java.util.*;
    
    
    
    class CompareStudent implements Comparator{
    	
    	public int compare (Object s1, Object s2){
    	
    	return ((Student)s1).getname().compareTo(((Student)s1).getname());
    	}
    }
    
    public class Student  {
    	
    	String nome;
    	String cognome;
    	String matricola;
    	
    	
    	
    	Student(String nome, String cognome, String matricola){
    		this.nome=nome;
    		this.cognome=cognome;
    		this.matricola= matricola;
    		
    	}
    	
    	String getname(){
    		
    		return this.nome;
    		
    	}
    	
    	String getsurname(){
    		
    		return this.cognome;
    	}
    	
    	
    	
    	public static void main(String[] args){
    		
    		Student[] listastudenti= new Student[5];
    		
    		
    		listastudenti[1]= new Student("Luca","Boh","66692");
    		listastudenti[0]= new Student("Dario","Rossi","66837");
    		listastudenti[4]= new Student("Paolo","Bianchi","65562");
    		listastudenti[3]= new Student("Alex","Rfk","48912");
    		listastudenti[2]= new Student("Sara","Blu","65522");
    		
    		Arrays.sort(listastudenti, new CompareStudent());
    		
    		for (int i=0; i<listastudenti.length;i++){
    			
    			System.out.println((listastudenti[i].getname()) +" " + (listastudenti[i].getsurname()) );
    			
    		}
    	}
    	
    
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ehm...

    codice:
    return ((Student)s1).getname().compareTo(((Student) s1).getname());
    Stai comparando solo il primo oggetto con se stesso... al posto di "s1" (in grassetto) va messo "s2".


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.