Java メソッドから 2 つのオブジェクトを返したいのですが、そのための良い方法は何でしょうか?
考えられる方法は、 を返すHashMap
(2 つのオブジェクトは関連しているため) か、オブジェクトArrayList
のを返すことですObject
。
より正確に言うと、返したい 2 つのオブジェクトは (a)List
オブジェクトと (b) 同じオブジェクトのコンマ区切りの名前です。
オブジェクトのリストを反復処理してコンマで区切られた名前を取得したくないので (このメソッドの同じループで実行できます)、これら 2 つのオブジェクトを 1 つのメソッドから返します。
どういうわけか、 を返すのはHashMap
あまりエレガントな方法ではないようです。
ベストアンサー1
2 つのオブジェクトを返す場合は、通常、代わりに 2 つのオブジェクトをカプセル化する単一のオブジェクトを返します。
次のようにオブジェクトのリストを返すことができますNamedObject
。
public class NamedObject<T> {
public final String name;
public final T object;
public NamedObject(String name, T object) {
this.name = name;
this.object = object;
}
}
そうすれば、簡単に を返すことができますList<NamedObject<WhateverTypeYouWant>>
。
また、 ではなく、カンマで区切られた名前のリストを返す必要があるのはなぜでしょうかList<String>
。あるいは、Map<String,TheObjectType>
キーがオブジェクトの名前で値がオブジェクトである を返すのがさらに良いでしょう (オブジェクトに順序が指定されている場合を除きます。その場合は がNavigableMap
望ましいでしょう)。