1. ホーム
  2. java

[解決済み] JavaでC++のPair<L,R>に相当するものは何ですか?

2022-03-14 01:36:59

質問

がないのは、何か理由があるのでしょうか? Pair<L,R> をJavaで使うことはできますか?このC++の構成に相当するものは何でしょうか?私は、自分自身の再実装を避けたいのです。

どうやら 1.6 が似たようなものを提供している( AbstractMap.SimpleEntry<K,V> ) が、これはかなり複雑なようです。

どのように解決するのか?

にあるスレッド comp.lang.java.help の存在に対して、Hunter Gratznerがいくつかの反論をしています。 Pair という構文があります。主な論点は、クラス Pair は、2つの値の関係についてのセマンティクスを伝えません("first" と "second" の意味をどうやって知るのでしょう?)。

より良い方法は、マイクが提案したような非常にシンプルなクラスを、あなたが作ったであろう各アプリケーションのために書くことです。 Pair クラスがあります。 Map.Entry は、名前に意味を持たせているペアの例です。

結論から言うと、私の意見では、クラス Position(x,y) クラス Range(begin,end) とクラス Entry(key,value) ではなく、汎用的な Pair(first,second) というのは、それが何をするものなのか、何も教えてくれないからです。