|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jan 2009
Messaggi: 3
|
[Java] Ordinare una ArrayList di oggetti
Salve forum, questo è un mio programma che crea una ArrayList con dentro deglio oggetti studente che contiene nome, cognome e matricola.
MAIN: Codice:
import java.util.*;
public class Main
{
public static void main(String[] args)
{
ArrayList<Studente> lista = new ArrayList<Studente>();
lista.add(new Studente("Matteo","Donato",111));
lista.add(new Studente("Federica","Bianchi",222));
lista.add(new Studente("Alberto","Rossi",333));
for (int i=0; i<lista.size(); i++)
{
Studente s = lista.get(i);
String std = s.getAll();
System.out.println(std);
}
System.out.print("\nORDINATO PER NOME\n");
Collections.sort(lista);
for (int i=0; i<lista.size(); i++)
{
Studente s = lista.get(i);
String std = s.getAll();
System.out.println(std);
}
}
}
Codice:
public class Studente implements Comparable<Studente>
{
private String name;
private String surname;
private int matricola;
public void Studente()
{
name = "";
surname = "";
matricola = 0;
}
public Studente(String n, String s, int m)
{
name = n;
surname = s;
matricola = m;
}
public String getName(){return name;}
public String getSurname(){return surname;}
public int matricola(){return matricola;}
public String getAll(){String s = name + " | "+surname+" | "+matricola;
return s;}
public int compareTo(Studente otherObject)
{
return name.compareTo(otherObject.getName());
}
}
Ringrazio in anticipo |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
Basta che modifichi il compareTo della classe Studente:
Codice:
public int compareTo(Studente otherObject) {
return surname.compareTo(otherObject.getSurname());
}
Ciao
__________________
iMac 27" 5K |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Jan 2009
Messaggi: 3
|
Ma in che modo?
Cioè come faccio in modo che il programma capisca quale compare utilizzare? |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Quando usi il metodo Collection.sort passando solo la collezione di oggetti Srudente, verrà usato il metodo compareTo implemetato da Studente (in quanto Comparable), quando invece vuoi usare uno degli altri criteri passi, assieme alla collezione di oggetti Studente, un'istanza del Comparator pertinente: verrà così usata l'implementazione di compareTo di quel Comparator.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:07.



















