2016-10-12 9 views
0

標準のC++からJavaにいくつかのコードを翻訳しています。いくつかの場所では、Javaでパラメータペアタイプを表現するための標準的な慣用的な方法は、java pair to C++

std::pair<T1,T2> 

より具体的に

std::pair<Date,double> 

あり利用しますか?一例として、私はカスタムタイプを使用する必要があります

class Observation { 
    LocalDate date; 
    double value; 
} 

他のケースもありますが、そこから2つまたは3つのものを返す必要があります。他の言語では、おそらくペア、トリプル、その他のタプルエンティティを使用します。

私は必要な小さなクラスを作るのに気にしませんが、私がJavaの機能を逃しているかどうかを知りたいと思います。

ご迷惑をおかけして申し訳ありません。

(私はこれが今までS.O.に提起私の最初の質問であることをかなり確信してP.S.)

+0

ありがとうございました。どういうわけか私はその質問を逃したと信じています。それは間違いなく同じ質問です。つまり、私はその答えには、セマンティクスではなく、小さなクラスを作るということには同意しません。ペアや他のタプルを隠すことは良いことです。それでも、ありがとう、私の質問に完全に正しく答えています。 –

+0

Javaは非常に意図的にこれを残しています。要点は、名前のついたフィールドで適切なクラスを作ることです。 –

+0

私は、Javaデザイナーが2つの名前付きフィールドを持つクラスを作るように強制する意図を理解しています。ローマでは、ローマ人のようにする必要があります。私はちょうどローマ人のように私が実際にやっていたことを確かめたかったのです。私は意図的な強制に同意せず、正しければC++、Go、Scheme、Scala、Haskell、Pythonのプログラマーのようなローマ以外の人が、またはタプル。 Javaが今lambdaを持っていることを考えると、私はいつでもタプルを見ることに驚かないでしょう。 –

答えて

1

は、標準のJava APIには何もありませんが、さまざまなサードパーティのライブラリは、ペアの実装を持っています。例えば。 Apache Commons Langのthis one

+0

ありがとうございます。これは単純なペアクラスを自分で実装するだけでなく実行可能なことですが、依存性を持たずに標準のJavaの「小さなクラスを作成する」ことができます。 –