Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* TP4 --- Exercice 2 */
- /* TransformationType.java */
- package exo2;
- public class TransformationType {
- public static void main(String[] args) {
- Double[] tableau = { 1.1, 3.5, 2.0, 5.6, 64.0 };
- EnsTransformable ens = new EnsTransformable(tableau);
- ens.transformer(new Transformation() {
- @Override
- public Object transforme(Object x) {
- Double d = (Double)x;
- return String.valueOf(d) ;
- }
- });
- System.out.println(ens);
- }
- }
- /* TransformationMinMaj.java */
- package exo2;
- import java.util.Scanner;
- public class TransformationMin {
- public static void main(String[] args) {
- String[] tableau = {"Bonjour", "HIER", "Aujourd'hui"};
- EnsTransformable ensemble = new EnsTransformable(tableau);
- // Demande à l'utilisateur une saisie au clavier
- Scanner sc = new Scanner(System.in);
- String choix = sc.next();
- switch(choix) {
- case "a":
- Transformation majus = new EnMajuscule();
- ensemble.transformer(majus);
- break; /* Sortie du switch */
- case "i":
- ensemble.transformer(new Transformation() {
- @Override
- public Object transforme(Object o) {
- return ((String) o).toLowerCase();
- }
- });
- break;
- default:
- System.out.println("Saisie incorrecte");
- break;
- }
- // ATTENTION : choix == "a" n'est pas possible en Java
- /*if(choix.equals("a")) {
- Transformation majus = new EnMajuscule();
- ensemble.transformer(majus);
- }
- else if (choix.equals("i")) {
- ensemble.transformer(new Transformation() {
- @Override
- public Object transforme(Object o) {
- return ((String) o).toLowerCase();
- }
- });
- }*/
- System.out.println(ensemble);
- }
- public static class EnMinuscule implements Transformation {
- @Override
- public Object transforme(Object o) {
- String tmp = (String)o;
- return (tmp.toLowerCase());
- }
- }
- public static class EnMajuscule implements Transformation {
- @Override
- public Object transforme(Object o) {
- String tmp = (String)o;
- return (tmp.toUpperCase());
- }
- }
- }
- /* TransformationDouble.java*/
- package exo2;
- public class TransformationDouble {
- public static void main(String[] args) {
- Double[] tableau = { 1.1, 3.5, 2.0, 5.6, 64.0 };
- EnsTransformable ensemble = new EnsTransformable(tableau);
- System.out.println(ensemble);
- /* Classe nommée */
- Transformation racine = new RacineCarree();
- ensemble.transformer(racine);
- System.out.println(ensemble);
- /* Classe interne anonyme */
- ensemble.transformer(new Transformation() {
- @Override
- public Object transforme(Object o) {
- Double tmp = (Double)o;
- return tmp*tmp;
- }
- });
- System.out.println(ensemble);
- /* Lambda expression */
- ensemble.transformer(
- (Object o) -> {return Math.pow((Double)o,3.);}
- );
- System.out.println(ensemble);
- }
- private static class RacineCarree implements Transformation {
- @Override
- public Object transforme(Object o) {
- return Math.sqrt((Double)o);
- }
- }
- }
- /* EnsTransformable.java */
- package exo2;
- public class EnsTransformable {
- private Object[] ensemble;
- public EnsTransformable(Object[] ensemble) {
- this.ensemble = new Object[ensemble.length];
- for(int i = 0; i < ensemble.length; i++)
- this.ensemble[i] = ensemble[i];
- //this.ensemble = ensemble;
- }
- public void transformer(Transformation f) {
- for(int i = 0; i < this.ensemble.length; i++)
- ensemble[i] = f.transforme(ensemble[i]);
- }
- @Override
- public String toString() {
- String result = "";
- for(int i = 0; i < ensemble.length; i++)
- // Affichage des éléments de l'ensemble ligne par ligne
- result = result + ensemble[i] +"\n";
- return result;
- }
- }
- /* TP4 --- Exercice 3 */
- import java.util.Arrays;
- import java.util.function.Predicate;
- public class ExemplePredicateCours {
- public static int[] selectionne(int[] lesValeurs, Predicate<Integer> predicate){
- int[] valeursSelectionnees = new int[lesValeurs.length];
- int nb= 0;
- for (int v : lesValeurs){
- if(predicate.test(v)){
- valeursSelectionnees[nb++]=v;
- }
- }
- return Arrays.copyOf(valeursSelectionnees,nb);
- }
- public static void main(String[] args) {
- int[] tab={1, -23, 56, -67, 10, -11};
- int[] e1 =ExemplePredicateCours.selectionne(tab, new Predicate<Integer>() {
- @Override
- public boolean test(Integer i) {
- return i>0;
- }
- });
- System.out.println(Arrays.toString(e1));
- int[] e1bis =selectionne(tab,(Integer i) -> {return i>0;});
- System.out.println(Arrays.toString(e1bis));
- int[] e2 =ExemplePredicateCours.selectionne(tab, new Predicate<Integer>() {
- @Override
- public boolean test(Integer i) {
- return i<0;
- }
- });
- System.out.println(Arrays.toString(e2));
- int[] e2bis =selectionne(tab,i -> i<0);
- System.out.println(Arrays.toString(e2bis));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement