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éthode
Variable objet :: Nom de la méthode
Nom de classe :: nouveau
MethodRefUnuseBasic.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