Peut-on améliorer mon code ? ( java)

Bonjour,
J'aimerais pouvoir extraire tous les nombres pairs dans mon tableau et les ajouter dans un second tableau.
Je ne sais pas si mon code est correct ou non ? Y a-t-il moyen de faire plus simple svp ?

PHP:
import java.util.ArrayList;
import java.util.Scanner;

public class lol {
    public static void main(String[] args) {
        Scanner enter = new Scanner (System.in);
        Integer[] nombre = Pair (new int[]{5, 6, 7, 9, 7, 4, 4, 2, 3});

        for(int i = 0; i<nombre.length; i++)
        {
            System.out.println(nombre[i]);
        }

    }

    static Integer[] Pair (int nb[])
    {
        ArrayList<Integer> tab = new ArrayList<Integer>();
        for(int i = 0; i<nb.length; i++)
        {
            if(nb[i] % 2 == 0)
            {
                tab.add(nb[i]);
            }
        }
        return tab.toArray(new Integer[4]);
    }

}
 

farid_h

<defunct>
Contributeur
D'abord, que vient faire 'Scanner' (enter) dans ce code? Pas besoin ici. Tu peux supprimer les deux lignes qui l'introduisent et l'utilisent.

Ensuite, tu peux supprimer les { } quand t'as une seule instruction dans
le body.

Mais le plus important, c'est dans la fonction Pair(): il faut te debarasser du '4', car tu ne sais a priori pas combien d'elements pairs se trouvent dans 'nb'. Il faut utiliser le nombre d'elements que t'as ajoute avec 'add()' comme dimension. Et d'apres la documentation de ArrayList<>, on obtient ce nombre d'elements avec size().

Pour resumer, ca donne ceci:

Code:
import java.util.ArrayList;

public class lol {
    public static void main(String[] args) {
        Integer[] nombre = Pair (new int[]{5, 6, 7, 9, 7, 4, 4, 2, 3});

        for(int i = 0; i<nombre.length; i++)
            System.out.println(nombre[i]);
    }

    static Integer[] Pair (int nb[])
    {
        ArrayList<Integer> tab = new ArrayList<Integer>();
        for(int i = 0; i<nb.length; i++)
            if(nb[i] % 2 == 0)
                tab.add(nb[i]);
        
        return tab.toArray(new Integer[tab.size()]);
    }
}

A ton niveau, je n'introduirais pas des concepts plus avances, comme des lambda predicates, ou des combinaisons avec du streaming du genre:

Code:
import java.util.Arrays;
import java.util.List;

public class lol2 {

  public static void main(String[] args) {
    List<Integer> nombres = Arrays.asList(5, 6, 7, 9, 7, 4, 4, 2, 3);
    Integer[] pairs = nombres.stream()
                             .filter(value -> value % 2 == 0)
                             .toArray(Integer[]::new);

    for (int i=0; i<pairs.length; ++i)
        System.out.println(pairs[i]);
  }
}

Ca, ca vient bien plus tard.

;)
 
Dernière édition:
D'abord, que vient faire 'Scanner' (enter) dans ce code? Pas besoin ici. Tu peux supprimer les deux lignes qui l'introduisent et l'utilisent.

J'en aurais besoin après. Je compte faire un menu où l'utilisateur aura plusieurs options.

Mais le plus important, c'est dans la fonction Pair(): il faut te debarasser du '4', car tu ne sais a priori pas combien d'elements pairs se trouvent dans 'nb'. Il faut utiliser le nombre d'elements que t'as ajoute avec 'add()' comme dimension. Et d'apres la documentation de ArrayList<>, on obtient ce nombre d'elements avec size().

Effectivement c'est une erreur....
Tu utilises des fonctions que je ne connais pas encore... Comme le size()

Je pense avoir compris ton code mais il est comme même assez dure. J'ai refais l'exercice ce matin au boulot j'y suis arrivé différemment.

PHP:
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Pair (new int[]{5, 6, 7, 9, 7, 4, 4, 2, 3});

    }

    static void Pair (int nb[])
    {
        ArrayList<Integer> tab = new ArrayList<Integer>();
        for(int i = 0; i<nb.length; i++)
        {
            if(nb[i] % 2 == 0)
            {
                tab.add(nb[i]);
                System.out.println(nb[i]);
            }
        }

    }

}

Sa serait intéressant de créer une fonction qui trie les nombres par ordre croissant j'essayerais sans utiliser la fonction sort() car trop facile. Je vais essayer de faire ça demain ou le week-end.
 

farid_h

<defunct>
Contributeur
Okay, tu peux le faire comme ca. Mais c'est pas "propre". Le "spirit" de l'exercice est de considerer la function Pair() comme un module qui s'occuppe uniquement de filtrer les nombres paires d'un Array et de livrer un autre Array avec les resultats. Les afficher, c'est mieux de le faire chez le client de Pair(), c.a.d. ici dans main(). C'est pour ca que la version precedente etait meilleure.

Biensur que tu peux afficher les resultats dans Pair(). C'est okay aussi... ;)

Si tu veux trier des nombres... il faut que tu t'informes d'abord sur les differents algorithmes de tri: bubble sort, insert sort, heap sort, quicksort, mergesort. Il y en a plusieurs, avec des caracteristiques differentes. Un des plus lents, mais des plus faciles a saisir/comprendre pour debutants, c'est bubble sort. Commences par ca. La fonction sort() utilise a l'interieur le quicksort, mais il est un peu difficile a comprendre si on est debutant.
 
Salam Farid_h,

J’ai compris le code que tu m'avais corrigé. J’ai cependant encore deux questions à te poser.

J’aimerais créer un menu où dans l’option 1 il y ait les nombres pairs et impairs dans l’option 2.
En Python par exemple le switch n’existe pas et donc après avoir créé la fonction PairImpair
Il suffisait de faire un:

PHP:
print("Nombres Pairs" , PairImpair(tab, 0)) ;

PairImpair -> est en fait la fonction
Tab -> est la liste des nombres
0 -> Parce que c’est Pair

Ici en Java c’est un peu plus compliqué j’y arrive pas…

Dans mon case voici ce que j’ai tenté de faire…

PHP:
case 1 :
          System.out.println("Option 1 : " + Pair(tab, 0));
        
        break;

Voici mon code en général. Par contre je me demandais aussi si c'était pas mieux de créer une fonction PairImpair directement ? Sa serait plus propre non ?

PHP:
import java.util.ArrayList;
import java.util.Scanner;


public class Main {
    public static void main(String[] args) {
      Scanner enter = new Scanner (System.in);
      int choix = 9; // Quitter programme
    
      do{
        System.out.println("----MENU----");
        System.out.println("1) Nombres Pairs : ");
        System.out.println("2) Nombres Impairs : ");
        System.out.println("--------------------- ");
      
        System.out.print("Taper votre choix svp :  ");
        choix = enter.nextInt();
      
      }while(choix<1 || choix>10);
    
      switch(choix)
      {
        case 1 :
          System.out.println("Option 1 : " );
          //System.out.println("Option 1 : " + Pair(tab, 0));
        
        break; 
    
        case 2 :
          System.out.println("Option 2 : ");
        break; 
      
      }
  
  
    Pair (new int[]{5, 6, 7, 9, 7, 4, 4, 2, 3});

    }

    static void Pair (int nb[])
    {
        ArrayList<Integer> tab = new ArrayList<Integer>();
        for(int i = 0; i<nb.length; i++)
        {
            if(nb[i] % 2 == 0)
            {
                tab.add(nb[i]);
                //System.out.println(nb[i]);
            }
        }

    }

}
 
Si tu veux trier des nombres... il faut que tu t'informes d'abord sur les differents algorithmes de tri: bubble sort, insert sort, heap sort, quicksort, mergesort. Il y en a plusieurs, avec des caracteristiques differentes. Un des plus lents, mais des plus faciles a saisir/comprendre pour debutants, c'est bubble sort. Commences par ca. La fonction sort() utilise a l'interieur le quicksort, mais il est un peu difficile a comprendre si on est debutant.


Merci Farid pour toutes ces précisions, je vais d'abord maîtriser ce que j'essaye d'apprendre et après je verrais pour les tris.:)
 

farid_h

<defunct>
Contributeur
PHP:
case 1 :
          System.out.println("Option 1 : " + Pair(tab, 0));
          break;

// ...

//System.out.println("Option 1 : " + Pair(tab, 0));
        
// ...
    
    static void Pair (int nb[])

// ...

C'est parce que la signature de Pair() ne correspond pas a l'usage que tu en fais:

1. void Pair() veut dire que Pair() ne donne pas de String a imprimer dans println().

Tu ne peux pas dire d'un cote:

PHP:
void Pair(...) { .. }

et de l'autre cote l'utiliser la ou un String est attendu

PHP:
System.out.println("Nombres pairs: " + Pairs(...));

2. Les arguments de Pair() ne sont pas corrects non plus. T'as d'un cote dans ta definition:

PHP:
void Pair (int nb[]) { ... }

donc un seul arguemnt 'int nb[]'. Mais qu'en est-il du 2eme argument 0 ou 1 que tu donnes a Pair() ici?:

PHP:
System.out.println("Option 1 : " + Pair(tab, 0));

Il faut l'ajouter a la liste des parametres de Pair()... et aussi l'utiliser la dedans...

Si tu insistes absolument a imprimer les resultats dans Pair() directement, au lieu de retourner un ArrayList<Integer> ou un Array a main(), c'est plus facile de faire comme ca:

PHP:
case 1:
    Pair(nombres, 0); // nombres pairs
    break;
case 2:
    Pair(nombres, 1); // nombres impairs
    break;

// ou, carrement: Pair(nombres, choix-1) sans switch ici!

// ...

static void Pair(int nb[], int pair_ou_impair)
{
    switch pair_ou_impair {
       case 0:
           // filtrer les nombres pairs dans, disons un ArrayList<> 'resultat'
           break;
       case 1:
           // filtrer les nombres impairs dans resultat
           break;
       default:
            // l'usager n'a pas specifie 0 ou 1....
            // imprimer un message d'erreur, et quitter avec return;
     }

     // imprimer les resultats du contenu de 'result'
}
 
d
2. Les arguments de Pair() ne sont pas corrects non plus. T'as d'un cote dans ta definition:

PHP:
void Pair (int nb[]) { ... }

donc un seul arguemnt 'int nb[]'. Mais qu'en est-il du 2eme argument 0 ou 1 que tu donnes a Pair() ici?:

Le deuxième argument sera 0.
Par contre je me demande si on peut faire un int chiffre à la place ?
Par exemple en Python c'est possible...

PHP:
def pairImpair(tableau, chiffre):
    tempo = []
    for nb in tableau:
        if nb%2 == chiffre:
            tempo.append(nb);
    return tempo



Si tu insistes absolument a imprimer les resultats dans Pair() directement, au lieu de retourner un ArrayList<Integer> ou un Array a main(), c'est plus facile de faire comme ca:

PHP:
case 1:
    Pair(nombres, 0); // nombres pairs
    break;
case 2:
    Pair(nombres, 1); // nombres impairs
    break;

// ou, carrement: Pair(nombres, choix-1) sans switch ici!

// ...

static void Pair(int nb[], int pair_ou_impair)
{
    switch pair_ou_impair {
       case 0:
           // filtrer les nombres pairs dans, disons un ArrayList<> 'resultat'
           break;
       case 1:
           // filtrer les nombres impairs dans resultat
           break;
       default:
            // l'usager n'a pas specifie 0 ou 1....
            // imprimer un message d'erreur, et quitter avec return;
     }

     // imprimer les resultats du contenu de 'result'
}

Désolé d'être chiant :mignon: mais dans mon menu il n'y aura pas que des nombres pairs & impairs.
Dans l'option 3 par exemple on cherchera le nombre le plus Grand dans mon array etc...
Mon but est de vraiment bien manipuler des éléments dans tableau. Cependant j'aimerais avoir la bonne logique car tu as vu dans mon premier code, le code fonctionnait mais c'était pas exacte, il fallait un size().
 

farid_h

<defunct>
Contributeur
C'est qu'il faut que t'ajoutes cet argument a la liste des parametres de Pair(). Ici le parametre 'pair_ou_impair':

PHP:
static void Pair(int nb[], int pair_ou_impair) { ... }

Et quand t'invoques Pair(), tu fais ca:

PHP:
Pair (new int[]{5, 6, 7, 9, 7, 4, 4, 2, 3}, 0); // filtrer et imprimer les nombres pairs
// ou:
Pair (new int[]{5, 6, 7, 9, 7, 4, 4, 2, 3}, 1); // filtrer et imprimer les nombres impairs
 
Merci Farid_h, ça fonctionne après je ne sais pas si c'est très propre mais ça va.
Je ne savais pas qu'on pouvait ajouter l'argument après un array.

PHP:
    switch(choix)
        {
            case 1 :
                System.out.println("Option 1 : " );
                PairImpair (new int[]{5, 6, 7, 9, 7, 4, 4, 2, 3}, 0);

                break;

            case 2 :
                System.out.println("Option 2 : " );
                PairImpair (new int[]{5, 6, 7, 9, 7, 4, 4, 2, 3}, 1);
                break;

        }

    }

    static void PairImpair (int nb[] , int chiffre)
    {
        ArrayList<Integer> tab = new ArrayList<Integer>();
        for(int i = 0; i<nb.length; i++)
        {
            if(nb[i] % 2 == chiffre)
            {
                tab.add(nb[i]);
                System.out.println(nb[i]);
            }
        }

    }
 

farid_h

<defunct>
Contributeur
Je ne savais pas qu'on pouvait ajouter l'argument après un array.

Pourquoi pas? Apres tout, derriere les coulisses, tu ne transmets pas les elements de l'array a la fonction, tu transmets techniquement un pointer (donc un nombre scalaire) vers cet array a la fonction, donc une seule valeur.

En (mauvais) C++ avec du flavor C, l'equivalent serait ceci:

PHP:
void PairImpair (int *nb, std::size_t nr_elements, int chiffre)
{
    /* ici on peut utiliser la notation nb[i] */
    for (int i=0; i != nr_elements; ++i)
      if (nb[i] % 2 == chiffre)
         // ...
}

Car on a en C/C++ l'equivalence

PHP:
nb[i] == *(nb+i)   ; // avec pointer arithmetic

En Java, tu ne manipules pas des pointers directement, mais ils sont omnipresents. Par exemple, a chaque foi que tu invoques l'operateur new[] pour creer un Array, ce que ce 'new' retourne, c'est une reference (i.e. un pointer) vers le debut de l'Object qui vient d'etre cree.
 
@farid_h:

J'ai travaillé une petite partie de la nuit sur mon programme ...
Je vais plutôt travaillé sur des listes et des boucles for-each.

Cependant je rencontre un autre problème.
J'ai crée deux fonctions ( PlusGrand && PlusPetit) qui me permettent de trouver la valeur la Plus grande dans ma liste et la plus Petite. Ici tout fonctionne.

J'aimerais maintenant connaitre la différence entre les deux valeurs. (case 6)
Suis-je obliger de recréer une fonction ? Je ne pense pas...

Voici mon algo...

PHP:
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        Scanner enter = new Scanner(System.in);
        int choix = 9;
        List<Integer> nombres = Arrays.asList(5, 6, 9, 22, 7, 4, 16, 1, 3, 15);
        List<Integer> nombresPairs = pair(nombres);
        List<Integer> nombresImpair = impair(nombres);
        List<Integer> sum = somme(nombres);
        List<Integer> max = PlusGrand(nombres);
        List<Integer> min = PlusPetit(nombres);

        do {

            System.out.println("----MENU----");
            System.out.println("1) ---> Les Nombres Pairs : ");
            System.out.println("2) ---> Les Nombres Impairs : ");
            System.out.println("3) ---> La  Somme   des Nombres : ");
            System.out.println("4) ---> Le  Nombre  le plus Grand : ");
            System.out.println("5) ---> Le  Nombre  le plus Petit : ");
            System.out.println("6) ---> La  Différence entre le Grand & le Petit : ??? ");
            System.out.println("-------------------------------------");
            System.out.print("Taper votre choix svp : ");
            choix = enter.nextInt();

            switch (choix) {

                case 1:
                    System.out.println("Option 1 : ");
                    System.out.println("Nombres Pairs ");
                    afficher(nombresPairs);
                break;

                case 2:
                    System.out.println("Option 2 : ");
                    System.out.println("Nombres ImPairs ");
                    afficher(nombresImpair);
                break;

                case 3:
                    System.out.println("Option 3 : ");
                    System.out.println("Somme des nombres : ");
                    afficher(sum);
                break;

                case 4:
                    System.out.println("Option 4 : ");
                    System.out.println("Le nombre le plus Grand : ");
                    afficher(max);
                break;

                case 5:
                    System.out.println("Option 5 : ");
                    System.out.println("Le nombre le plus Petit : ");
                    afficher(min);
                break;

                case 6:
                    System.out.println("Option 6 : ");
                    System.out.println("La différence : ");
                    // afficher((max ) - (min));
                    break;

            }

        } while (choix < 1 || choix > 10);


    }

    public static List<Integer> pair(List<Integer> nombres) {
        List<Integer> nombresPairs = new ArrayList<>();
        for (int nombre : nombres) {
            if (nombre % 2 == 0) {
                nombresPairs.add(nombre);
            }
        }
        return nombresPairs;
    }

    public static List<Integer> impair(List<Integer> nombres) {
        List<Integer> nombresImpair = new ArrayList<>();
        for (int nombre : nombres) {
            if (nombre % 2 != 0) {
                nombresImpair.add(nombre);
            }
        }
        return nombresImpair;
    }

    public static List<Integer> somme(List<Integer> nombres) {
        List<Integer> sum = new ArrayList<>();
        int i = 0;
        for (int nombre : nombres) {
            i = i + nombre;


        }
        sum.add(i);
        return sum;
    }

    public static List<Integer> PlusGrand (List<Integer> nombres) {
        List<Integer> max = new ArrayList<>();
        int grand = 0;
        for (int nombre : nombres) {
            if (nombre > grand) {
                grand = nombre;
            }

        }
        max.add(grand);
        return max;

    }

    public static List<Integer> PlusPetit (List<Integer> nombres) {
        List<Integer> min = new ArrayList<>();
        int petit = 99;
        for (int nombre : nombres) {
            if (nombre < petit) {
                petit = nombre;
            }
        }
        min.add(petit);
        return min;

    }


    public static void afficher(List<Integer> liste) {
        for (int valeur : liste) {
            System.out.println(valeur);
        }


    }




}
 
En Java 8 en utilisant les stream, ça donnerait ça pour les nombres pairs:

Code:
List<Integer> evenNumbers = nombres.stream().filter(i -> i % 2 == 0).collect(Collectors.toList());
 

farid_h

<defunct>
Contributeur
@tadawit, dans ton code PlusGrand() et PlusPetit() (soit dit en passant, pour des elements qui sont des fonctions et non des classes, je conseille de ne pas utiliser de majuscule au debut, donc plusGrand() et plusPetit()...)...

... qu'est-ce qui se passe si ton array contient des nombres negatifs comme -1, -5, -4242? T'as remarque le bug?

(petite indication: Integer.MIN_VALUE, Integer.MAX_VALUE)

J'aimerais maintenant connaitre la différence entre les deux valeurs. (case 6)
Suis-je obliger de recréer une fonction ? Je ne pense pas...

Non, bien sur que non. Tu imprimes max[0] - min[0] directement sur place (et non max - min, car max et min sont des listes...)

Mais t'as un autre probleme ici: tu ne fais de nouveau pas attention a la signature de tes fonctions:

PHP:
public static List<Integer> somme(List<Integer> nombres);
public static List<Integer> plusGrand (List<Integer> nombres);
public static List<Integer> plusPetit (List<Integer> nombres);

Pourquoi tu retournes un seul Integer dans une liste? C'est trop complique. Car quand tu veux les invoquer, t'es oblige de dire, par exemple:

PHP:
// attention: plusGrand() et plusPetit() retournent des listes!
Integer difference = plusGrand(nombres)[0] - plusPetit(nombres)[0];

au lieu de

PHP:
// plusGrand() et plusPetit() retournent des Integer
Integer difference = plusGrand(nombres) - plusPetit(nombres);

si tu retournais simplement Integer au lieu de List<Integer>.

Quand ta fonction calcule une seule valeur (un scalar), pas besoin qu'elle retourne tout un array, une liste, etc...
 

farid_h

<defunct>
Contributeur
Je dois corriger ma reponse:

Si t'as une List<Integer> l, tu ne peux pas dire l[0] comme j'ai suggere plus haut
avec par ex. max[0] ou plusGrand(nombres)[0]. Tu dois utiliser la fonction get()
de List<> pour y arriver; donc l.get(0). Donc:

PHP:
Integer max = plusGrand(nombres).get(0);
Integer min = plusPetit(nombres).get(0);

// ou...

Integer difference = plusGrand(nombres).get(0) - plusPetit(nombres).get(0);

Biensur, si plusGrand() et plusPetit() retournaient des Integer au lieu de List<Integer>,
la syntaxe serait plus simple chez l'utilisateur de ces fonctions...
 
Salam Farid_h,

Merci bien ça marche pour le case 6 .
PHP:
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        Scanner enter = new Scanner(System.in);
        int choix = 9;
        List<Integer> nombres = Arrays.asList(5, 6, 9, 22, 7, 4, 16, 1, 3, 15);
        List<Integer> nombresPairs = pair(nombres);
        List<Integer> nombresImpair = impair(nombres);
        List<Integer> sum = somme(nombres);
        List<Integer> max = plusGrand(nombres);
        List<Integer> min = plusPetit(nombres);
        Integer difference = plusGrand(nombres).get(0) - plusPetit(nombres).get(0);


        do {

            System.out.println("----MENU----");
            System.out.println("1) ---> Les Nombres Pairs : ");
            System.out.println("2) ---> Les Nombres Impairs : ");
            System.out.println("3) ---> La  Somme   des Nombres : ");
            System.out.println("4) ---> Le  Nombre  le plus Grand : ");
            System.out.println("5) ---> Le  Nombre  le plus Petit : ");
            System.out.println("6) ---> La  Différence entre le Grand & le Petit : ");
            System.out.println("-------------------------------------");
            System.out.print("Taper votre choix svp : ");
            choix = enter.nextInt();

            switch (choix) {

                case 1:
                    System.out.println("Option 1 : ");
                    System.out.println("Nombres Pairs ");
                    afficher(nombresPairs);
                break;

                case 2:
                    System.out.println("Option 2 : ");
                    System.out.println("Nombres ImPairs ");
                    afficher(nombresImpair);
                break;

                case 3:
                    System.out.println("Option 3 : ");
                    System.out.println("Somme des nombres : ");
                    afficher(sum);
                break;

                case 4:
                    System.out.println("Option 4 : ");
                    System.out.println("Le nombre le plus Grand : ");
                    afficher(max);
                break;

                case 5:
                    System.out.println("Option 5 : ");
                    System.out.println("Le nombre le plus Petit : ");
                    afficher(min);
                break;

                case 6:
                    System.out.println("Option 6 : ");
                    System.out.println("La différence : ");
                    System.out.print(difference);


                    break;

            }

        } while (choix < 1 || choix > 10);


    }

    public static List<Integer> pair(List<Integer> nombres) {
        List<Integer> nombresPairs = new ArrayList<>();
        for (int nombre : nombres) {
            if (nombre % 2 == 0) {
                nombresPairs.add(nombre);
            }
        }
        return nombresPairs;
    }

    public static List<Integer> impair(List<Integer> nombres) {
        List<Integer> nombresImpair = new ArrayList<>();
        for (int nombre : nombres) {
            if (nombre % 2 != 0) {
                nombresImpair.add(nombre);
            }
        }
        return nombresImpair;
    }

    public static List<Integer> somme(List<Integer> nombres) {
        List<Integer> sum = new ArrayList<>();
        int i = 0;
        for (int nombre : nombres) {
            i = i + nombre;


        }
        sum.add(i);
        return sum;
    }

    public static List<Integer> plusGrand (List<Integer> nombres) {
        List<Integer> max = new ArrayList<>();
        int grand = 0;
        for (int nombre : nombres) {
            if (nombre > grand) {
                grand = nombre;
            }

        }
        max.add(grand);
        return max;

    }

    public static List<Integer> plusPetit (List<Integer> nombres) {
        List<Integer> min = new ArrayList<>();
        int petit = 99;
        for (int nombre : nombres) {
            if (nombre < petit) {
                petit = nombre;
            }
        }
        min.add(petit);
        return min;

    }



    public static int diff (ArrayList<Integer> nombres){
        int max = nombres.get(0);
        int min = nombres.get(0);
        for (final int i : nombres) {
            if (i > max) {
                max = i;
            } else if (i < min) {
                min = i;
            }
        }
        return (max - min) + 1;
    }


    public static void afficher(List<Integer> liste) {
        for (int valeur : liste) {
            System.out.println(valeur);
        }


    }




}

Je vais suivre ton conseil et ne returner que Integer pour plus de faciliter avec mes functions.
Pour ce qui est de min_Value j'ai cherché la simplicité pour débuter.

Merci :)
 

farid_h

<defunct>
Contributeur
Changes un peu ton programme pour ne pas calculer sans necessite des choses qui ne sont pas selectes par le menu. Si par ex. l'usager choisi 3 (somme), calcules uniquement la somme, et pas aussi plusGrand(), plusPetit() etc... ;)
 
Haut