Exemple11_CollectionsRetourTélécharger L'utitilisation de ArrayList avec les types primitifs README.txt Pour compiler : javac *.java Pour exécuter : java ExempleNN (avec NN = le numéro de l'exemple) Exemple11.java //L'utitilisation de ArrayList avec les types primitifs import java.util.*; public class Exemple11 { public static void main(String... a_args) { Terminal.ecrireStringln("Exemple 11"); Terminal.ecrireStringln("-----------------------------------"); // Un array list contenant les types primitifs // ArrayList liste1 = new ArrayList(); liste1.add( 123 ); liste1.add( 23.45 ); liste1.add( true ); liste1.add( "TOTO" ); liste1.add( "ENCORE" ); Terminal.ecrireStringln(liste1.toString()); Terminal.ecrireStringln("-----------------------------------"); /// int n = liste1.get(0); // Exemple11.java:18: incompatible types // found : java.lang.Object // required: int Integer i = (Integer) liste1.get(0); Double d = (Double) liste1.get(1); Boolean b = (Boolean) liste1.get(2); String s1 = (String) liste1.get(3); String s2 = (String) liste1.get(4); Terminal.ecrireStringln("" + i); Terminal.ecrireStringln("" + d); Terminal.ecrireStringln("" + b); Terminal.ecrireStringln(s1); Terminal.ecrireStringln(s2); Terminal.ecrireStringln("-----------------------------------"); // Le plus courant le ArrayList contient toujours le même type // Exemple un tableau d'entier : ArrayList<Integer> tabint = new ArrayList<Integer>(); int n =456; tabint.add(123); tabint.add(n); tabint.add(2); int x = tabint.get(0); // Ici l'affectation est acceptée Terminal.ecrireStringln("x = " + x); // Recherche dans une collection // ================================================================== Terminal.ecrireStringln("Utilisation de contains, role de equals"); ArrayList<Bidule> listeBidule = new ArrayList<Bidule>(); Bidule bidule1 = new Bidule(20); listeBidule.add(new Bidule(10)); listeBidule.add(bidule1); listeBidule.add(new Bidule(30)); listeBidule.add(new Bidule(40)); //Executer les lignes qui suit sans la méthode equals de Bidule puis avec // if (listeBidule.contains(bidule1)) Terminal.ecrireStringln("bidule1 de 20 trouve"); else Terminal.ecrireStringln("bidule1 de 20 non trouve"); Bidule bidule2 = new Bidule(20); if (listeBidule.contains(bidule2)) Terminal.ecrireStringln("bidule2 de 20 trouve"); else Terminal.ecrireStringln("bidule2 de 20 non trouve"); } } class Bidule { int x; public Bidule(int x){this.x=x;} public String toString() { return ""+x; } //public boolean equals(Bidule o) {return x==o.x;} // !!Piège ==> ce n'est pas la vraie méthode equals public boolean equals(Object o) { return x==((Bidule)o).x; } } Terminal.java import java.io.*; public class Terminal{ static BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); public static String lireString() // Lire un String { String tmp=""; char C='\0'; try { tmp = in.readLine(); } catch (IOException e) { exceptionHandler(e); } return tmp; } // fin de lireString() public static int lireInt() // Lire un entier { int x=0; try { x=Integer.parseInt(lireString()); } catch (NumberFormatException e) { exceptionHandler(e); } return x ; } public static boolean lireBoolean() // Lire un entier { boolean b = true; try { b = Boolean.valueOf(lireString()).booleanValue(); } catch (NumberFormatException e) { exceptionHandler(e); } return b; } public static double lireDouble() // Lire un double { double x=0.0; try { x=Double.valueOf(lireString()).doubleValue(); } catch (NumberFormatException e) { exceptionHandler(e); } return x ; } public static char lireChar() // Lire un caractere { String tmp=lireString(); if (tmp.length()==0) return '\n'; else { return tmp.charAt(0); } } public static void ecrireString(String s){ // Afficher un String try{ System.out.print(s); } catch (Exception ex){ exceptionHandler(ex); } } public static void ecrireStringln(String s) // Afficher un String { ecrireString(s); sautDeLigne(); } // fin de ecrireStringln() public static void ecrireInt(int i) // Afficher un entier { ecrireString(""+i); } public static void ecrireIntln(int i) // Afficher un entier { ecrireString(""+i); sautDeLigne(); } public static void ecrireBoolean(boolean b){ ecrireString(""+b); } public static void ecrireBooleanln(boolean b){ ecrireString(""+b); sautDeLigne(); } public static void ecrireDouble(double d) // Afficher un double { ecrireString(""+d); } public static void ecrireDoubleln(double d) // Afficher un double { ecrireDouble(d); sautDeLigne(); } public static void ecrireChar(char c) // Afficher un caractere { ecrireString(""+c); } public static void ecrireCharln(char c) // Afficher un caractere { ecrireChar(c); sautDeLigne(); } public static void sautDeLigne(){ try{ System.out.println(); }catch(Exception ex){ exceptionHandler(ex); } } protected static void exceptionHandler(Exception ex){ TerminalException err = new TerminalException(ex); throw err; } public static void ecrireException(Throwable ex){ ecrireString(ex.toString()); ex.printStackTrace(System.err); } } class TerminalException extends RuntimeException{ Exception ex; TerminalException(Exception e){ ex = e; } } compil.bat mkdir bin del /f /s /q bin\*.class javac -d bin *.java pause run.bat cd bin java Exemple11 pause Execution.txt java Exemple11 Exemple 11 ----------------------------------- [123, 23.45, true, TOTO, ENCORE] ----------------------------------- 123 23.45 true TOTO ENCORE ----------------------------------- x = 123