Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177

    [java]ordinare un ArrayList

    Ciao sto provando a sviluppare una classe Persona che memorizza il nome e cognome di diverse persone e li ordina in ordine alfabetico(quindi ho pensato di utilizzare il metodo sort della classe collection).Il bello è che non riesco a stampare le parole ordinate con il metodo toString della classe Object.
    codice:
    import java.util.*;
    class Persona{
    private String nome;
    private String cognome;
    private ArrayList<String> ordina;
    
    Persona(String nome,String cognome){
        this.nome=nome;
        this.cognome= cognome;
        ordina=new ArrayList<String>();
    }
    public String getnome(){
        return nome;
    }
    public String getcognome(){
        return cognome;
    }
    public ArrayList<String> ordina(){
        return ordina;
    }
    
    public String getordina(){
        String f="";
        ordina.add(nome);
        ordina.add(cognome);
        Collections.sort(ordina);
        for (int pos=0;pos<ordina.size();pos++){
            f=ordina.get(pos);
    }
    return f;        
    }
    public String toString() {
        String s=nome+" "+cognome;
        String r="";
    System.out.println(s);
    
        System.out.println("ordino. ");
        r=r+nome.getordina()+ " "+cognome.getordina();
        return r;
        
    }    
    }
    Il compilatore mi dà errore in quanto non riesce a trovare il metodo getordina().Non posso richiamare dei metodi,in altri metodi(sempre nella stessa classe)?
    Ultima modifica di el92; 14-03-2015 a 20:23

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    nome e cognome sono due oggetti di tipo String e come tali non hanno il metodo getordina(), che è della classe Persona. C'è diversa confusione comunque... cosa sarebbe quella lista ordina dentro Persona? O_o

    Ah, riguardo la nomenclatura: nome -> getNome() cognome -> getCognome().
    Il getter di ordina si dovrebbe chiamare getOrdina(). Tu hai un getordina() che in realtà fa tutt'altro e un ordina() che fa quello che dovrebbe fare getOrdina()

    Se devi sviluppare un oggetto che contenga nomi e cognomi di N persone è concettualmente sbagliato quello che stai facendo.

    Classe Persona -> nome e cognome di una singola persona, non deve sapere niente di altre persone o di liste o che altro. Una persona, punto.

    Classe col main, in cui dichiarerai un List<Persona> persone = new ArrayList<Persona>() e aggiungerai le persone che ti interessano.
    Su questa lista chiamerai Collections.sort()
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177
    Ciao qundi le classi che tu crei rappresentano degli oggetti(in questo caso una singola persona),che costriutiscono la base per eseguire alcuni compiti(es ordinare i nomi di diverse persone) nella classe main..giusto?Io pensavo che dovevi ordinare tutto nella classe Persona
    Ultima modifica di el92; 15-03-2015 a 13:30

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.