Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* TestTriNuplets.java */
- package exo1;
- public class TestTriNuplets {
- public static void main(String[] args) {
- ListeNuplets ln = new ListeNuplets(2,2);
- System.out.println(ln);
- System.out.println("\n---- Tri en cours ----\n");
- ln.trier();
- System.out.println(ln);
- }
- }
- /* ListeNuplets.java */
- package exo1;
- import static java.util.Arrays.sort;
- public class ListeNuplets {
- private Nuplet[] lesNuplets;
- /* lesTailles = tableau d'entiers, longueur définie par le nombre
- * d'arguments passés au constructeur
- * exemple : ListeNuplets(1,2,3) -> tableau de 3 entiers
- * autre exemple : ListeNuplets(2, 2, 4, 6, 8) -> tableau de 5 entiers
- */
- public ListeNuplets(int... lesTailles) {
- this.lesNuplets = new Nuplet[lesTailles.length];
- for(int i = 0; i < lesTailles.length; i++) {
- this.lesNuplets[i] = new Nuplet(lesTailles[i]);
- }
- }
- /* Pour pouvoir utiliser Arrays.sort, il faut que les objets contenus
- * dans le tableau soient Comparables (doivent implémenter l'interface Comparable)
- */
- public void trier() {
- sort(lesNuplets);
- }
- @Override
- public String toString() {
- String result="[ ";
- for(int i = 0; i < this.lesNuplets.length-1; i++)
- result+=this.lesNuplets[i]+", ";
- result+=this.lesNuplets[this.lesNuplets.length-1]+" ]";
- return result;
- }
- public Nuplet getNuplet(int index) {
- if (index < lesNuplets.length && index >= 0)
- return lesNuplets[index];
- else
- return null;
- }
- /* static : N'accède pas aux attributs/méthodes de la classe englobante
- * (sauf pour les attributs/méthodes static, ...)
- */
- static private class Nuplet implements Comparable<Nuplet> {
- private int[] content;
- public Nuplet(int k) {
- this.content = new int[k];
- //System.out.println("Saisissez "+k+" valeurs entières :");
- for(int i = 0; i < k; i++) {
- /* Saisie au clavier de valeurs entières (strictement positives)
- content[i] = new Scanner(System.in).nextInt();*/
- // OU (A UTILISER POUR LES TESTS)
- content[i] = (int)(Math.random() * ((10 - 1) + 1)) + 1;
- }
- }
- /* TODO : pour permettre un tri de lesNuplets en utilisant Arrays.sort() */
- @Override
- public int compareTo(Nuplet n) {
- int [] contenu = n.content;
- int i = 0;
- // On compare les éléments 1 à 1 tant que les tableaux ne sont pas parcourus entièrement
- while ( i < content.length && i < contenu.length ) {
- if (content[i] < contenu[i])
- return -1;
- else
- if (content[i] > contenu[i])
- return 1;
- else
- i++;
- }
- // Si les tableaux sont identiques, celui qui a le plus grand tableau est le plus grand des deux.
- if (content.length < contenu.length)
- return -1;
- else if (content.length > contenu.length)
- return 1;
- else
- return 0;
- }
- @Override
- public String toString() {
- String result = "(";
- for(int i = 0; i < this.content.length-1; i++)
- /* result = result + this.content[i] + ","; */
- result += this.content[i]+",";
- result += this.content[this.content.length-1] + ")";
- return result;
- }
- public int nbElements() {
- return content.length;
- }
- public int getElement(int index) {
- if(index >= 0 && index < this.content.length)
- return this.content[index];
- else
- return -1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement