public class TestGenerics { // Version non-générique d'une paire d'élements de type quelconque static class NGPair{ private Object first; private Object second; public NGPair(Object first, Object second){ this.first=first; this.second=second; } public Object getFirst(){return first;} public Object getSecond(){return second;} public String toString(){ return "("+first+","+second+")"; } } // Paire d'élements de type quelconque static class Pair{ private T first; private S second; public Pair(T first, S second){ this.first=first; this.second=second; } public T getFirst(){return first;} public S getSecond(){return second;} public String toString(){ return "("+first+","+second+")"; } } // impression des éléments d'un tableau public static void printArray(T[] a){ for(T e:a) System.out.print(e+" "); System.out.println(); } // trouver l'élément minimum d'un tableau public static > E min(E[]a){ E smallest = a[0]; for(E e:a) if(e.compareTo(smallest)<0)smallest=e; return smallest; } // renverser l'ordre des éléments d'un tableau public static void reverse(T[] a){ int l = a.length-1; for(int i=0;i p1=new Pair("guy",123); System.out.println(p1); Pairp2=new Pair(true,'a'); System.out.println(p2); Pair,Pair> p3 = new Pair,Pair>(p1,p2); System.out.println(p3); // tableaux d'objets Integer[] a1 = new Integer[]{3,1,4,1,5,9,2,6,7}; String[] a2 = new String[]{"bonjour","les","amis"}; // imprimer les éléments des tableaux printArray(a1); printArray(a2); // imprimer les valeurs minimales des tableaux System.out.println(min(a1)); System.out.println(min(a2)); // imprimer les éléments des tableaux renversés reverse(a1); printArray(a1); reverse(a2); printArray(a2); } } /* Résultats de l'exécution (guy,123) (true,a) ((guy,123),(true,a)) 3 1 4 1 5 9 2 6 7 bonjour les amis 1 amis 7 6 2 9 5 1 4 1 3 amis les bonjour */