CCB Premier Import

This commit is contained in:
Christian Cunat-Brulé
2018-07-23 10:52:48 +02:00
commit f55475a23f
765 changed files with 209793 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
package generique;
public class Box<T> {
private T t;
public void set(T t) { this.t = t; }
public T get() { return t; }
public static void main (String args []) {
// D<>claration et new avec le type
Box<Integer> integerBox = new Box<Integer>();
integerBox.set(new Integer (12));
// integerBox.set("Bonjour"); // ERREUR DE COMPILATION :
// The method set(Integer) in the type Box<Integer> is not applicable
// for the arguments (String)
Integer i = integerBox.get(); // PAS LA PEINE DE FAIRE UN CAST
// Ou alors avec le <20>diamant<6E> et une inf<6E>rence de type
Box<Integer> integerBox2 = new Box<>();
integerBox2.set(new Integer (33));
Integer j = integerBox2.get();
// Le type <20>brut<75> : Box
Box rawBox = new Box();
rawBox.set(new Integer (35));
// Integer k = rawBox.get(); ERREUR DE COMPILATION :
// Type mismatch: cannot convert from Object to Integer
int k = (Integer) rawBox.get();
}
}

View File

@@ -0,0 +1,15 @@
package generique;
class Couple<T> {
private T x, y ; // les 2 elements du couple seront du m<>me type
public Couple (T premier, T second){
x = premier ; y = second ;
}
public T getPremier () {
return x ;
}
public void affiche () {
System.out.println ("Couple : 1ere val : " + x + " - 2e val : " + y ) ;
}
}

View File

@@ -0,0 +1,36 @@
package generique;
class CoupleDiff<T, U> {
private T x; // le premier element du couple
private U y; // le second element du couple
public CoupleDiff(T premier, U second) {
x = premier;
y = second;
}
public T getPremier() {
return x;
}
public void affiche() {
System.out.println ("Couple diff 1ere val : " + x + " - 2e val : " + y ) ;
}
public static void main(String args[]) {
Integer oi1 = 3;
Double od1 = 2.5;
CoupleDiff<Integer, Double> ch1 = new CoupleDiff<Integer, Double>(oi1,
od1);
ch1.affiche();
Integer oi2 = 4;
CoupleDiff<Integer, Integer> ch2 = new CoupleDiff<Integer, Integer>(oi1, oi2);
ch2.affiche();
Integer n = ch1.getPremier();
System.out.println("premier element du couple ch1 = " + n);
}
}

View File

@@ -0,0 +1,17 @@
package generique;
public class CoupleMain
{
public static void main (String args[])
{
Integer oi1 = new Integer (3) ;
Integer oi2 = new Integer (5) ;
Couple <Integer> ci = new Couple (oi1, oi2) ;
ci.affiche () ;
Couple <Double> cd = new Couple <Double> (2.0, 12.0) ;
cd.affiche() ;
Double p = cd.getPremier () ;
System.out.println ("premier element du couple cd = " + p ) ;
}
}

View File

@@ -0,0 +1,17 @@
package generique;
public class Pair<K, V> {
// G<>rer une paire cl<63> - valeur (ayant chacune un type g<>n<EFBFBD>rique)
private K key;
private V value;
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
public void setKey(K key) { this.key = key; }
public void setValue(V value) { this.value = value; }
public K getKey() { return key; }
public V getValue() { return value; }
}

View File

@@ -0,0 +1,22 @@
package generique;
public class PairMain {
// Comparer deux paires cl<63>s - valeur (ayant chacune un type g<>n<EFBFBD>rique)
public static <K, V> boolean compare(Pair<K, V> p1, Pair<K, V> p2) {
return p1.getKey().equals(p2.getKey()) &&
p1.getValue().equals(p2.getValue());
}
public static void main(String args[]) {
Pair<Integer, String> p1 = new Pair<>(1, "apple");
Pair<Integer, String> p2 = new Pair<>(2, "pear");
boolean same = PairMain.<Integer, String>compare(p1, p2);
System.out.println("same = " + same);
// On peut aussi ne pas mettre le type qui sera inf<6E>r<EFBFBD> par le compilateur :
Pair<Integer, String> p3 = new Pair<>(1, "apple");
Pair<Integer, String> p4 = new Pair<>(1, "apple");
boolean same2 = PairMain.compare(p3, p4);
System.out.println("same2 = " + same2);
}
}