tyrion

Esercizi POO

May 13th, 2012
475
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.38 KB | None | 0 0
  1. // PRIMO PEZZO
  2. import java.util.*;
  3.  
  4. class Libro {
  5.     private String titolo;
  6.     private String autore;
  7.  
  8.     public Libro(String titolo, String autore) {
  9.         this.titolo = titolo;
  10.         this.autore = autore;
  11.     }
  12.  
  13.     public String getAutore() {
  14.         return this.autore;
  15.     }
  16.  
  17.     public String getTitolo() {
  18.         return this.titolo;
  19.     }
  20.  
  21. }
  22.  
  23.  
  24. public class RaggruppatoreLibriPerAutore {
  25.     private List<Libro> elencoLibri;
  26.  
  27.     public RaggruppatoreLibriPerAutore(){
  28.         this.elencoLibri = new ArrayList<Libro>();
  29.     }
  30.  
  31.     public void aggiungiLibro(Libro libro) {
  32.         this.elencoLibri.add(libro);
  33.     }
  34.  
  35.     public Map<String, List<Libro>> autore2libri() {
  36.         Map<String, List<Libro>> mappa = new HashMap<String, List<Libro>>();
  37.         List<Libro> tmp;
  38.         for (Libro libro : elencoLibri) {
  39.             tmp = mappa.get(libro.getAutore());
  40.             if (tmp == null) {
  41.                 tmp = new LinkedList<Libro>();
  42.                 mappa.put(libro.getAutore(), tmp);
  43.             }
  44.             tmp.add(libro);
  45.         }
  46.         return mappa;
  47.     }
  48. }
  49.  
  50. // SECONDO PEZZO
  51.  
  52. import java.util.*;
  53.  
  54. class Libro implements Comparable<Libro> {
  55.     //NON toccare il codice di questa classe
  56.     private String isin;
  57.     private int pagine;
  58.  
  59.     public Libro(String isin, int p) {
  60.         this.isin = isin;
  61.         this.pagine = p;
  62.     }
  63.     //NON toccare il codice di questa classe
  64.     public String getCodiceISIN() {
  65.         return this.isin;
  66.     }
  67.  
  68.     public int getNumeroPagine() {
  69.         return this.pagine;
  70.     }
  71.  
  72.     public int compareTo(Libro libro) {
  73.         return this.getNumeroPagine() - libro.getNumeroPagine();
  74.     }
  75.     //NON toccare il codice di questa classe
  76. }
  77.  
  78. class ComparatoreLibriPerPagineISIN implements Comparator<Libro> {
  79.  
  80.     public int compare(Libro l1, Libro l2) {
  81.         int cmp = l1.compareTo(l2);
  82.         return (cmp != 0 ? cmp : l1.getCodiceISIN().compareTo(l2.getCodiceISIN()));
  83.     }
  84. }
  85.  
  86. public class CatalogatoreLibri {
  87.     private List<Libro> elenco;
  88.  
  89.     public CatalogatoreLibri() {
  90.         this.elenco = new ArrayList<Libro>();
  91.     }
  92.  
  93.     public void aggiungiLibro(Libro libro) {
  94.         this.elenco.add(libro);
  95.     }
  96.  
  97.     public List<Libro> elencoOrdinatoPerPagineISIN() {
  98.         Collections.sort(elenco, new ComparatoreLibriPerPagineISIN());
  99.         return elenco;
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment