Domanda 1 Scrivere il codice del compareTo in modo

Domanda 1
Scrivere il codice del compareTo in modo tale che confronti due Studenti per età e a
parità di questa per matricola
import java.util.*;
class Studente implements Comparable<Studente> {
private String matricola;
private int eta;
public Studente(String matricola, int eta) {
this.matricola = matricola;
this.eta = eta;
}
public String getMatricola() {
return this.matricola;
}
public int getEta() {
return this.eta;
}
}
public int compareTo(Studente that) {
int eta = this.getEta()-that.getEta();
if(eta==0){
return this.getMatricola().compareTo(that.getMatricola());
}
return eta;
}
public class Immatricolazioni {
private List<Studente> elenco;
public Immatricolazioni() {
this.elenco = new ArrayList<Studente>();
}
public void aggiungiStudente(Studente studente) {
this.elenco.add(studente);
}
}
public List<Studente> elencoOrdinatoPerEtaMatricola() {
List<Studente> elencoOrdinato = new ArrayList<Studente>();
elencoOrdinato.addAll(this.elenco);
Collections.sort(elencoOrdinato);
return elencoOrdinato;
}
Domanda 2
Che cosa stampa questo programma?
interface Vegetale {
public void nonFaNulla();
}
class Pianta implements Vegetale {
public Pianta() {}
public void nonFaNulla() {}
}
class Fungo implements Vegetale {
public Fungo() {}
public void nonFaNulla(){}
}
public class Quiz {
public void scrivi(Vegetale v) {
System.out.print("Vegetale ");
}
public void scrivi(Pianta p) {
System.out.print("Pianta ");
}
public void scrivi(Fungo f) {
System.out.print("Fungo ");
}
}
public static void main(String args[]) {
Quiz quiz = new Quiz();
Pianta p = new Pianta();
Fungo f = new Fungo();
Vegetale v = new Pianta();
v = f;
quiz.scrivi(v);
quiz.scrivi(p);
quiz.scrivi(f);
}
Vegetale Pianta Vegetale
Vegetale Pianta Fungo
Pianta Pianta Fungo
Fungo Pianta Fungo
Domanda 3
Che cosa stampa questo programma?
import java.util.*;
class Strada {
private String nome;
public Strada (String nome) {
this.nome = nome;
}
public void setNome (String n) {
nome = n;
}
}
public String getNome(){
return nome;
}
public class Quiz3 {
public static void main(String[] argc) {
List<Strada> l = new LinkedList<Strada>();
}
}
Strada a = new Strada("Appia");
l.add(a);
a.setNome("Casilina");
a = new Strada("Laurentina");
l.add(a);
Strada b;
b = a;
b.setNome("Cassia");
l.add(b);
for(Strada s : l)
System.out.print(s.getNome()+" ");
Appia Cassia Laurentina
Casilina Laurentina Cassia
Casilina Cassia Cassia
Appia Laurentina Cassia
Domanda 4
Che cosa stampa questo programma?
import java.util.*;
abstract class Vegetale1 {
public String cresceIn() { return "..."; }
}
class Cactus extends Vegetale1 {
public String cresceIn() { return
}
"deserto"; }
class Albero extends Vegetale1 {
public String cresceIn() { return "bosco"; }
}
class Pero extends Albero {
public String cresceIn() { return "frutteto"; }
}
public class Quiz4 {
public static void main(String args[]) {
List<Vegetale1> vegetali = new ArrayList<Vegetale1>();
Vegetale1 v = null;
Albero a = new Albero();
Vegetale1 vc = new Cactus();
Albero ap = new Pero();
Pero p = new Pero();
v = a;
vegetali.add(v);
v = vc;
vegetali.add(v);
v = ap;
vegetali.add(v);
v = p;
vegetali.add(v);
}
}
for(Vegetale1 animale : vegetali)
System.out.print(animale.cresceIn()+" ");
bosco deserto frutteto frutteto
... ... ... ...
bosco ... bosco frutteto
bosco deserto ... frutteto
Domanda 5
Che cosa stampa questo programma?
import java.util.*;
class ComparatoreImpiegati implements Comparator<Impiegato> {
public int compare(Impiegato i1, Impiegato i2) {
return (i1.getMatricola().compareTo(i2.getMatricola()));
}
}
class Impiegato implements Comparable<Impiegato> {
public String nome;
public String matricola;
public Impiegato(String n, String m) {
this.nome = n;
this.matricola = m;
}
public int compareTo(Impiegato i) {
return this.nome.compareTo(i.getNome());
}
public String getMatricola(){
return this.matricola;
}
}
public String getNome(){
return this.nome;
}
public class Quiz5 {
public static void main(String[] args) {
List<Impiegato> elenco = new LinkedList<Impiegato>();
elenco.add(new Impiegato("Sara", "CCC"));
elenco.add(new Impiegato("Vittorio", "AAA"));
elenco.add(new Impiegato("Matteo", "RRR"));
elenco.add(new Impiegato("Vittorio", "LLL"));
Collections.sort(elenco, new ComparatoreImpiegati());
}
}
for(Impiegato impiegato : elenco)
System.out.print(impiegato.getNome()+" ");
Vittorio Vittorio Sara Matteo
Vittorio Sara Vittorio Matteo
Matteo Sara Vittorio Vittorio
Nessuno dei precedenti
Domanda 6
Che cosa stampa questo programma?
import java.util.*;
public class Quiz6 {
public static void main(String[] argv) {
Map<Integer,String> codice2marca;
codice2marca = new HashMap<Integer,String>();
codice2marca.put(1,
codice2marca.put(2,
codice2marca.put(1,
codice2marca.put(3,
}
}
"Nissan");
"Fiat");
"Opel");
"Renault");
List<Integer> ll = new LinkedList<Integer>(codice2marca.keySet());
Collections.sort(ll);
Iterator<Integer> i = ll.iterator();
while (i.hasNext())
System.out.print(codice2marca.get(i.next())+" ");
Fiat Nissan Opel Renault
Nissan Fiat Renault
Nissan Opel Fiat Renault
Opel Fiat Renault
Domanda 7
Che cosa stampa questo programma?
class Giocoliere {
private String attrezzo;
public Giocoliere(String attrezzo) {
this.attrezzo = attrezzo;
}
public String getAttrezzo() {
return attrezzo;
}
}
public void setAttrezzo(String attrezzo) {
this.attrezzo = attrezzo;
}
class MaestroGiocoliere {
public void assegnaAttrezzo(Giocoliere giocoliere, String nuovoAttrezzo) {
giocoliere.setAttrezzo(nuovoAttrezzo);
}
}
public class Quiz7 {
public static void main(String[] args) {
MaestroGiocoliere maestro = new MaestroGiocoliere();
Giocoliere leonardo = new Giocoliere("Palline");
Giocoliere alessio = leonardo;
System.out.print(alessio.getAttrezzo()+" ");
System.out.print(leonardo.getAttrezzo()+" ");
System.out.print("- ");
maestro.assegnaAttrezzo(alessio, "Cerchi");
System.out.print(alessio.getAttrezzo()+" ");
System.out.print(leonardo.getAttrezzo()+" ");
System.out.print("- ");
}
}
maestro.assegnaAttrezzo(leonardo, "Clave");
System.out.print(alessio.getAttrezzo()+" ");
System.out.print(leonardo.getAttrezzo()+" ");
Palline - Cerchi Palline - Cerchi Clave
Palline Palline - Cerchi Palline - Cerchi Clave
Palline Palline - Cerchi Cerchi - Clave Clave
Palline Palline - Cerchi Palline - Clave Palline
Domanda 8
Che cosa stampa questo programma?
class Albero {
public void innesta(Albero a) {
System.out.print("Albero.innesta(Albero) ");
altezza();
}
}
}
}
public void innesta(Pero b) {
System.out.print("Albero.innesta(Pero) ");
altezza();
public void altezza() {
System.out.print("Albero.altezza()");
class Pero extends Albero {
public void innesta(Albero a) {
System.out.print("Pero.innesta(Albero) ");
altezza();
}
public void innesta(Pero b) {
System.out.print("Pero.innesta(Pero) ");
altezza();
}
}
public void altezza() {
System.out.print("Pero.altezza()");
}
public class Quiz {
public static void main(String args[]) {
Albero a = new Pero();
Albero b = new Albero();
}
}
a.innesta(b);
Pero.innesta(Pero) Pero.altezza()
Pero.innesta(Albero) Albero.altezza()
Albero.innesta(Albero) Albero.altezza()
Pero.innesta(Albero) Pero.altezza()
Domanda 9
Scrivi il metodo autore2canzoni() in modo tale da soddisfare le specifiche:
raggruppando tutte le canzoni per autore in una mappa
import java.util.*;
class Canzone {
private String titolo;
private String autore;
public Canzone(String titolo, String autore) {
this.titolo = titolo;
this.autore = autore;
}
public String getAutore() {
return this.autore;
}
public String getTitolo() {
return this.titolo;
}
}
public class RaggruppatoreCanzoniPerAutore {
private List<Canzone> elencoCanzoni;
public RaggruppatoreCanzoniPerAutore(){
this.elencoCanzoni = new ArrayList<Canzone>();
}
public void aggiungiCanzone(Canzone canzone) {
this.elencoCanzoni.add(canzone);
}
public Map<String, List<Canzone>> autore2canzoni() {
Map<String, List<Canzone>> autore2canzoni = new HashMap<String,
List<Canzone>>();
for (Canzone i: this.elencoCanzoni){
List<Canzone> lista = autore2canzoni.get(i.getAutore());
if(lista!=null){
lista.add(i);
} else {
lista = new ArrayList<Canzone>();
lista.add(i);
autore2canzoni.put(i.getAutore(), lista);
}
}
}
}
return autore2canzoni;