Advertisement
anthonimes

TP4---POO

Nov 12th, 2020 (edited)
464
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.95 KB | None | 0 0
  1. /* TestTriNuplets.java */
  2. package exo1;
  3.  
  4. public class TestTriNuplets {
  5.  
  6.     public static void main(String[] args) {
  7.         ListeNuplets ln = new ListeNuplets(2,2);
  8.  
  9.         System.out.println(ln);
  10.  
  11.         System.out.println("\n---- Tri en cours ----\n");
  12.         ln.trier();
  13.  
  14.         System.out.println(ln);
  15.     }
  16.  
  17. }
  18.  
  19.  
  20. /* ListeNuplets.java */
  21. package exo1;
  22.  
  23. import static java.util.Arrays.sort;
  24.  
  25. public class ListeNuplets {
  26.     private Nuplet[] lesNuplets;
  27.  
  28.     /* lesTailles = tableau d'entiers, longueur définie par le nombre
  29.      * d'arguments passés au constructeur
  30.      * exemple : ListeNuplets(1,2,3) -> tableau de 3 entiers
  31.      * autre exemple : ListeNuplets(2, 2, 4, 6, 8) -> tableau de 5 entiers
  32.      */
  33.     public ListeNuplets(int... lesTailles) {
  34.         this.lesNuplets = new Nuplet[lesTailles.length];
  35.         for(int i = 0; i < lesTailles.length; i++) {
  36.             this.lesNuplets[i] = new Nuplet(lesTailles[i]);
  37.         }
  38.     }
  39.  
  40.     /* Pour pouvoir utiliser Arrays.sort, il faut que les objets contenus
  41.      * dans le tableau soient Comparables (doivent implémenter l'interface Comparable)
  42.      */
  43.     public void trier() {
  44.         sort(lesNuplets);
  45.     }
  46.  
  47.     @Override
  48.     public String toString() {
  49.         String result="[ ";
  50.         for(int i = 0; i < this.lesNuplets.length-1; i++)
  51.             result+=this.lesNuplets[i]+", ";
  52.         result+=this.lesNuplets[this.lesNuplets.length-1]+" ]";
  53.         return result;
  54.     }
  55.  
  56.     public Nuplet getNuplet(int index) {
  57.         if (index < lesNuplets.length && index >= 0)
  58.             return lesNuplets[index];
  59.         else
  60.             return null;
  61.     }
  62.  
  63.     /* static : N'accède pas aux attributs/méthodes de la classe englobante
  64.      * (sauf pour les attributs/méthodes static, ...)
  65.      */
  66.     static private class Nuplet implements Comparable<Nuplet> {
  67.         private int[] content;
  68.  
  69.         public Nuplet(int k) {
  70.             this.content = new int[k];
  71.             //System.out.println("Saisissez "+k+" valeurs entières :");
  72.             for(int i = 0; i < k; i++) {
  73.                 /* Saisie au clavier de valeurs entières (strictement positives)
  74.                 content[i] = new Scanner(System.in).nextInt();*/
  75.                 // OU (A UTILISER POUR LES TESTS)
  76.                 content[i] = (int)(Math.random() * ((10 - 1) + 1)) + 1;
  77.             }
  78.         }
  79.  
  80.         /* TODO : pour permettre un tri de lesNuplets en utilisant Arrays.sort() */
  81.         @Override
  82.         public int compareTo(Nuplet n) {
  83.             int [] contenu = n.content;
  84.             int i = 0;
  85.             // On compare les éléments 1 à 1 tant que les tableaux ne sont pas parcourus entièrement
  86.             while ( i < content.length && i < contenu.length ) {
  87.                 if (content[i] < contenu[i])
  88.                     return -1;
  89.                 else
  90.                 if (content[i] > contenu[i])
  91.                     return 1;
  92.                 else
  93.                     i++;
  94.             }
  95.             // Si les tableaux sont identiques, celui qui a le plus grand tableau est le plus grand des deux.
  96.             if (content.length < contenu.length)
  97.                 return -1;
  98.             else if (content.length > contenu.length)
  99.                 return 1;
  100.             else
  101.                 return 0;
  102.         }
  103.  
  104.         @Override
  105.         public String toString() {
  106.             String result = "(";
  107.             for(int i = 0; i < this.content.length-1; i++)
  108.                 /* result = result + this.content[i] + ","; */
  109.                 result += this.content[i]+",";
  110.             result += this.content[this.content.length-1] + ")";
  111.             return result;
  112.         }
  113.  
  114.         public int nbElements() {
  115.             return content.length;
  116.         }
  117.  
  118.         public int getElement(int index) {
  119.             if(index >= 0 && index < this.content.length)
  120.                 return this.content[index];
  121.             else
  122.                 return -1;
  123.         }
  124.     }
  125. }
  126.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement