[JAVA] Comment utiliser l'identité

"J'en suis venu à réaliser que l'interface fonctionnelle et d'autres choses sont utiles, mais à quoi sert cette" identité "? Que diable voulez-vous retourner une fonction qui ne fait que retourner?" On m'a dit, c'est donc un tout nouveau mémo.

//S'il y a une telle classe
@Data
class Obj {
    private int id;
    private String data;
}

//Supposons que ce soit une liste
List<Obj> list = <some>;

// key:id, value:Générer une carte d'obj(* J'ai l'impression qu'il y a une meilleure main)
Map<Integer, Obj> map = list.stream().collect(Collectors.toMap(obj::getId, Function.identity()));

L'interface fonctionnelle est une interface pour recevoir "l'opération elle-même". Il traite toutes sortes d'opérations comme ça avec des signatures. Cependant, lorsque j'écris des choses en utilisant ce bang bang, il n'est pas rare que je dise: "Non, vous pouvez simplement le laisser tel quel! Ne faites rien!" L'identité est utile dans de tels cas.

Bien sûr, la même chose peut être faite en écrivant o-> o en lambda, mais ce n'est pas exactement la même chose. Il est notoire que les lambdas sont en fait des classes locales anonymes, ce qui signifie que plus vous les utilisez, plus vous utilisez de classes et d'instances. Cela signifie un peu de charge. (C'est vrai, pouvoir le passer en argument signifie qu'il a une entité comme objet)

D'autre part (en fonction de l'implémentation JVM), l'identité renvoie toujours la même instance: https://stackoverflow.com/questions/28032827/java-8-lambdas-function-identity-or-t-t Certes, si cela se termine sûrement en un seul plan, vous pouvez l'écrire légèrement avec lambda. Cependant, en gros, l'utilisation de Function.identity ou UnaryOperator.identity présente l'avantage que vous pouvez être assuré que vous ne produirez pas en masse par inadvertance des instances inutiles. Pardonnons un peu plus de types et d'importations.

"Au fait, qu'est-ce que l'identité?"

identité = égalité. L'identité de méthode renvoie une fonction égale. Une fonction égale est une «fonction qui renvoie l'argument passé» et est l'élément unitaire dans la combinaison de fonctions. En d'autres termes, c'est comme le chiffre 1 (bien que cela dépende de la zone du contexte, mais sensuellement).

Recommended Posts

Comment utiliser l'identité
Comment utiliser Map
Comment utiliser with_option
Comment utiliser fields_for
Comment utiliser java.util.logging
Comment utiliser la carte
Comment utiliser collection_select
Comment utiliser Twitter4J
Comment utiliser active_hash! !!
Comment utiliser MapStruct
Comment utiliser TreeSet
[Comment utiliser l'étiquette]
Comment utiliser le hachage
Comment utiliser Dozer.mapper
Comment utiliser Gradle
Comment utiliser org.immutables
Comment utiliser java.util.stream.Collector
Comment utiliser VisualVM
Comment utiliser Map
Comment utiliser l'API Chain
[Java] Comment utiliser Map
Comment utiliser Queue avec priorité
[Rails] Comment utiliser enum
Comment utiliser java Facultatif
Comment utiliser JUnit (débutant)
Comment utiliser le retour Ruby
[Rails] Comment utiliser enum
Comment utiliser @Builder (Lombok)
Comment utiliser la classe Java
Comment utiliser Big Decimal
Comment utiliser String [] args
Comment utiliser la jonction de rails
Comment utiliser Java Map
Ruby: Comment utiliser les cookies
Comment utiliser Dependant :: Destroy
Comment utiliser Eclipse Debug_Shell
Comment utiliser Apache POI
[Rails] Comment utiliser la validation
Comment utiliser les variables Java
[Rails] Comment utiliser authenticate_user!
Comment utiliser GC Viewer
Comment utiliser Lombok maintenant
[Création] Comment utiliser JUnit
[Rails] Comment utiliser Scope
Comment utiliser la méthode link_to
Comment utiliser le tableau (mémorandum personnel)
Comment utiliser scope (JSP & Servlet)
Comment utiliser la méthode include?
[Rails] Comment utiliser l'appareil (Remarque)
Comment utiliser la méthode form_with
Comment utiliser EventBus3 et ThreadMode
Remarques sur l'utilisation de Spring Data JDBC
Comment utiliser binding.pry [53 jours restants]
Comment utiliser HttpClient de Java (Post)
[Java] Comment utiliser la méthode de jointure