public class MethodRefUnuse {
//Contenu de la chaîne de caractères de sortie avec crochet
  public void walkArray(String[] data) {
    for (var value : data) {
      System.out.printf("[%s]\n", value);
    }
  }
}
//Sortir le contenu des données du tableau de chaînes de caractères dans l'ordre
public class MethodRefUnuseBasic {
  public static void main(String[] args) {
    var data = new String[] { "Le printemps est Akebono", "L'été est la nuit", "L'automne est le crépuscule" };
    var un = new MethodRefUnuse();
    un.walkArray(data); //[Le printemps est Akebono][L'été est la nuit][L'automne est le crépuscule]
  }
}
MethodRefUnuse.java
public class MethodRefUse {
//Rendre possible de recevoir la méthode de traitement des éléments du tableau par référence de méthode
  //Dans la sortie d'argument"Faites référence à une méthode qui reçoit un argument de type String et dont la valeur de retour est void"Passer
  public void walkArray(String[] data, Output output) {
    for (var value : data) {
      output.print(value);
    }
  }
//Méthode correspondant au type de sortie (entourer la chaîne de caractères entre crochets)
  //L'état réel de la méthode d'impression définie dans l'interface fonctionnelle est la méthode addQuote.
  static void addQuote(String value) {
    System.out.printf("[%s]\n", value);
  }
}
@ FunctionalInterface.Output.java
//Un type de méthode qui prend un argument de type String et retourne un type de méthode void
@FunctionalInterface
public interface Output {
  void print(String str);
}
Nom de classe :: Nom de méthodeVariable objet :: Nom de la méthodeNom de classe :: nouveauMethodRefUnuseBasic.java
public class MethodRefUseBasic {
  public static void main(String[] args) {
    var data = new String[] {"Le printemps est Akebono", "L'été est la nuit", "L'automne est le crépuscule"};
    var u = new MethodRefUse();
    //Passer une référence de méthode à la méthode walkArray
    u.walkArray(data, MethodRefUse::addQuote);
  }
}
addOuote (String value) Puis placez-le entre crochetsaddLength (String value), affiche la valeur totale de la longueur de chaîne du tableau.//Classe de compteur qui compte les chaînes
public class Counter {
  private int result = 0;
  public int getResult() {
    return this.result;
  }
  public void addLength(String value) {
    this.result += value.length();
  }
}
public class CounterBasic {
  public static void main(String[] args) {
    var data = new String[] {"Le printemps est Akebono", "L'été est la nuit", "L'automne est le crépuscule"};
    var u = new MethodRefUse();
    var c = new Counter();
    //La méthode addLength de la classe Counter ajoute la longueur de chaîne de valeur au champ de résultat
    u.walkArray(data, c::addLength);
    System.out.println(c.getResult());
  }
}
(type d'argument argument formel) -> {corps de la méthode} **java.util.function, vous n'avez donc pas à la préparer vous-même!//Argument de la méthode walkArray Interface consommateur
//Consumer est une méthode sans retour qui prend un argument de type T et effectue un certain traitement
import java.util.function.Consumer;
public class MethodLambda {
  public void walkArray(String[] data, Consumer<String> output) {
    for (var value : data) {
      output.accept(value);
    }
  }
}
public class MethodLambdaBasic {
  public static void main(String[] args) {
    var data = new String[] { "Le printemps est Akebono", "L'été est la nuit", "L'automne est le crépuscule" };
    var ml = new MethodLambda();
    ml.walkArray(data, (String value) -> {
      System.out.printf("[%s]\n", value);
    });
  }
}
(String value) ->  System.out.printf("[%s]\n", value)(value) ->  System.out.printf("[%s]\n", value)value ->  System.out.printf("[%s]\n", value)
import java.util.function.Consumer;
public class MethodLambdaBasic {
  public static void main(String[] args) {
    var data = new String[] { "Le printemps est Akebono", "L'été est la nuit", "L'automne est le crépuscule" };
    var ml = new MethodLambda();
    ml.walkArray(data, new Consumer<String>() {
      @Override
      public void accept(String value) {
        System.out.printf("[%s]\n", value);
      }
    });
     ml.walkArray(data, (String value) -> System.out.printf("[%s]\n", value));
     ml.walkArray(data, (value) -> System.out.printf("[%s]\n", value));
     ml.walkArray(data, value -> System.out.printf("[%s]\n", value));
  }
}
public void replaceAll(UnaryOperator<E> operator)//Extraire uniquement les 3 premiers caractères et afficher 2 caractères ou moins tels quels
import java.util.ArrayList;
import java.util.Arrays;
public class CollReplace {
  public static void main(String[] args) {
    var list = new ArrayList<String>(
        Arrays.asList("Neko", "Inu", "Niwatori"));
    list.replaceAll(v -> {
      if (v.length() < 3) {
        return v;
      } else {
        return v.substring(0, 3);
      }
    });
    System.out.println(list); //[Nek, Inu, Niw]
  }
}
//Ajouter un acronyme clé à la valeur de la carte
import java.util.HashMap;
import java.util.Map;
public class CollReplaceMap {
  public static void main(String[] args) {
    var map = new HashMap<String, String>(
      Map.of("cat", "Chat", "dog", "Inu", "bird", "Tori"));
    map.replaceAll((k, v) -> k.charAt(0) + v);
    System.out.println(map); //{cat=chat c, dog=d Inu, bird=b Tori}
  }
}
//Supprimer toutes les chaînes de 5 caractères ou plus
import java.util.ArrayList;
import java.util.Arrays;
public class CollRemove {
  public static void main(String[] args) {
    var list = new ArrayList<String>(
      Arrays.asList("Rose", "Tulipe", "Asagao", "Jacinthe"));
    list.removeIf(v -> v.length() > 4);
    System.out.println(list); //[Rose",Asagao]
  }
}
import java.util.HashMap;
import java.util.Map;
//Ajoutez le premier caractère de la clé à la valeur (calculez/computeIfPresent)
public class CollCompute {
  public static String trans(String key, String value) {
    return key.charAt(0) + value;
  }
//Définissez la clé elle-même sur la valeur (computeIfAbsent)
  public static String trans(String key) {
    return key;
  }
  public static void main(String[] args) {
    var map = new HashMap<String, String>(Map.of("orange", "Mandarine"));
//compute
      map.compute("orange", CollCompute::trans);
      map.compute("melon", CollCompute::trans);
      System.out.println(map); //{orange = o mikan, melon=mnull}
/*
computeIfPresent: traiter uniquement si la clé existe
    map.computeIfPresent("orange", CollCompute::trans);
    map.computeIfPresent("melon", CollCompute::trans);
    System.out.println(map); //{orange = o mikan}
*/
/*computeIfAbsent: ne traite que ceux qui n'ont pas de clé
    map.computeIfAbsent("orange", CollCompute::trans);
    map.computeIfAbsent("melon", CollCompute::trans);
    System.out.println(map); //{orange = orange, melon=melon}
*/
  }
}
public V merge(K key, V value, BiFunction<? super V,? super V,? extends V>remap)//Concaténer les valeurs séparées par des virgules lors de la duplication des valeurs
import java.util.HashMap;
import java.util.Map;
public class CollMerge {
    public static String concat(String v1, String v2) {
        if(v2 == "") {return null;}
        return v1 + "," + v2;
    }
    public static void main(String[] args) {
        var map = new HashMap<String, String>(Map.of("cat", "chat trois couleurs"));
        map.merge("dog", "Pomera An", CollMerge::concat);
        map.merge("cat", "Persha", CollMerge::concat);
        map.merge("dog", "Caniche", CollMerge::concat);
        System.out.println(map); //{dog=Pomera An,Caniche, cat=chat trois couleurs,Persha}
        //Fonction de jointure(remap)Ignore la clé elle-même si renvoie null
        map.merge("cat", "", CollMerge::concat);
        System.out.println(map); //{dog=Pomera An,Caniche}
    }
}
        Recommended Posts