Maison >Java >javaDidacticiel >Quel est l'équivalent Java de la « paire » de C et pourquoi n'y a-t-il pas d'analogue direct ?

Quel est l'équivalent Java de la « paire » de C et pourquoi n'y a-t-il pas d'analogue direct ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-19 17:30:14899parcourir

What's the Java Equivalent of C  's `Pair` and Why Isn't There a Direct Analogue?

Équivalent Java de C Pair

Question :

Bien que Java a Map.Entry en 1.6, il n'a pas d'équivalent direct de C Paire. Quelles sont les raisons de cette absence, et quelle est une approche alternative appropriée en Java ?

Réponse :

Raisons de l'absence :

Hunter Gratzner, dans un fil de discussion comp.lang.java.help, présente des arguments contre l'introduction d'une construction Pair en Java. La principale préoccupation est qu’une classe Pair manque de sémantique explicite sur la relation entre ses deux valeurs. Sans nom spécifique, il n'est pas clair ce que représentent les valeurs « première » et « seconde », ce qui rend la compréhension de l'intention du code plus difficile.

Alternative appropriée :

L'option recommandée L'approche consiste à créer des classes simples et spécifiques pour chaque cas d'utilisation prévu. Par exemple, au lieu de Pair(x,y), une classe plus descriptive comme Position(x,y) transmet plus clairement la relation entre les deux valeurs. De même, pour Range(begin,end) et Entry(key,value).

Map.Entry en tant qu'équivalent limité :

Alors que Map.Entry fournit une paire -comme la fonctionnalité, elle est spécifique aux mappages clé-valeur, limitant son usage général applicabilité.

Conclusion :

Au lieu de recourir à des classes Pair génériques, Java encourage la création de classes spécialisées et significatives qui transmettent explicitement l'utilisation prévue. Cette approche améliore la lisibilité et la compréhension du code, tout en évitant l'ambiguïté sémantique associée à un type Pair générique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn