Javaメソッドから複数のオブジェクトを返すにはどうすればいいですか? 質問する

Javaメソッドから複数のオブジェクトを返すにはどうすればいいですか? 質問する

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望ましいでしょう)。

おすすめ記事