ホームページ >Java >&#&チュートリアル >Java で C の「Pair」に相当するものは何ですか? 直接の類似物がないのはなぜですか?

Java で C の「Pair」に相当するものは何ですか? 直接の類似物がないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-19 17:30:14921ブラウズ

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

C ペアと同等の Java

質問:

Java ですが1.6 には Map.Entry がありますが、 C に直接相当するものはありません。ペア。この不在の背後にある理由は何ですか?また、Java での適切な代替アプローチは何ですか?

回答:

不在の理由:

Hunter Gratzner は、comp.lang.java.help スレッドで、Pair コンストラクトの導入に反対する議論を示しています。ジャワ。主な懸念は、Pair クラスには 2 つの値間の関係に関する明示的なセマンティクスが欠けていることです。具体的な名前が付けられていないと、「最初の」値と「2 番目」の値が何を表すのかが不明確になり、コードの意図を理解するのがより困難になります。

適切な代替案:

推奨アプローチは、意図したユースケースごとにシンプルで具体的なクラスを作成することです。たとえば、Pair(x,y) の代わりに、Position(x,y) のようなより説明的なクラスを使用すると、2 つの値間の関係がより明確に伝わります。同様に、Range(begin,end) と Entry(key,value).

Map.Entry の制限された同等物として:

一方、Map.Entry はペアを提供します。のような機能ですが、キーと値のマッピングに固有であり、汎用性が制限されています。

結論:

Java では、汎用のペア クラスに頼る代わりに、使用目的を明示的に伝える特殊で意味のあるクラスの作成を奨励​​します。このアプローチにより、コードの可読性と理解を強化しながら、汎用のペア型に関連する意味論的な曖昧さを回避します。

以上がJava で C の「Pair」に相当するものは何ですか? 直接の類似物がないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。