Ti ringrazio della risposta e del suggerimento (che sto guardando e voglio approfondire), ma quello che l'esercizio chiedeva è la costruzione di un metodo che dia come risultato del confronto true o false, e da lì stilare una lista ordinata.
Il problema per me non è trovare un metodo per riordinare gli oggetti, ma richiamarli all'interno dei metodi o dei comandi da eseguire!
Faccio un altro esempio di esercizio che non riesco a risolvere, dato che l'ho compreso meglio (l'ho costruito da capo) ma mi blocco nello stesso punto:
Scrivere una classe Veicolo che prevede una targa, una marca e un modello. La classeprevede anche una variabile booleana che descrive se il veicolo e guasto. Aggiungere un costruttore op-
portuno e vari metodi get e set opportuni. Scrivere la classi Vettura e Motociclo che estendono la classe
Veicolo. La classe Vettura prevede una stringa che ne descrive la tipologia ("utilitaria","station wagon",
"SUV",....) mentre la classe Motociclo prevede un numero che ne descrive la cilindrata (50, 125, ....).
Per testare le classi, scrivere un programma UsaVeicoli che crea un array inizializzato con veicoli
delle varie tipologie. Alcuni dei veicoli inseriti nell'array dovranno diventare guasti. Il programma deve
stampare la lista delle targhe dei veicoli guasti.
La classe Veicolo:
codice:
public class Veicolo {	private int targa;
	private String marca;
	private String modello;
	private boolean guasto;
	
	//inserire costruttore
	public Veicolo (int targa, String marca, String modello, boolean guasto){
		this.targa = targa;
		this.marca = marca;
		this.modello = modello;
		this.guasto = guasto;
	}
	//get informazioni
	public int getTarga(){ return targa; }
	public String getMarca() { return marca; }
	public String getModello() { return modello; }
	public boolean getGuasto() { return guasto; }
	
	int capienzaArray = 100;
	Veicolo[] veicoliV = new Veicolo[capienzaArray];


	public void stampaTarga(){
		System.out.println("Questo veicolo è guasto: " + getTarga());
	}
}
la classe motociclo:
codice:
public class Motociclo extends Veicolo {		private int cilindrata;


//costruttore
	public Motociclo(int targa, String marca, String modello, boolean guasto, int cilindrata) {
		super(targa, marca, modello, guasto);
		// TODO Auto-generated constructor stub
		this.cilindrata = cilindrata;
	}
public int getCilindrata() { return cilindrata; }
}
la classe vettura:
codice:
public class Vettura extends Veicolo {		private String tipologia;
		
	//costruttore
	public Vettura(int targa, String marca, String modello, boolean guasto, String tipologia) {
		super(targa, marca, modello, guasto);
		this.tipologia = tipologia;
		// TODO Auto-generated constructor stub
	}
	public String getTipologia(){ return tipologia; }
}
e mi blocco al programma UsaVeicoli, che nel mio cervello dovrebbe essere qualcosa del genere (lasciando perdere per ora la randomizzazione del guasto):
codice:
public class UsaVeicoli {	public static void main ( String args []) {


		/*tutti questi oggetti entrano a far parte dell'array veicoliV, giusto? Perché io ho creato un array di tipo Veicolo[], chiamato veicoliV, ma dato che Motociclo e Vettura sono sottoclassi di Veicolo sono automaticamente incluse*/
		Motociclo mot1 = new Motociclo(4853, "Audi", "smart", false, 150);
		Veicolo veic1 = new Veicolo(7683, "Fiat", "panda", false);
		Vettura vett1 = new Vettura(67894, "Volvo", "sportivo", true, "SUV");


		/*perché non posso usare veicoliV.length? Se veivoliV è un array, dovrei poter interagire su di esso e sulle sue posizioni, no? Perché non posso?*/
		for (int i= 0; i < 3; i++){
			if (veicoloV[i] == true){
					veicoloV[i].stampaTarga();
				}
		}
	}
}
Nell'esempio credo si veda bene che non ho capito come costruire e usare un oggetto e un array di oggetti. Sto davvero iniziando a confondermi.