java中return如何返回两个值

Java では return 文で複数の値を返すことはできませんが、次のような方法で複数の値を返却できます。

  1. 配列を使用:配列を作成し、複数の値を格納して、戻り値としてその配列を返します。
public class Main {
    public static void main(String[] args) {
        int[] result = returnMultipleValues();
        int value1 = result[0];
        int value2 = result[1];
        System.out.println(value1 + " " + value2);
    }
    
    public static int[] returnMultipleValues() {
        int value1 = 10;
        int value2 = 20;
        int[] result = {value1, value2};
        return result;
    }
}
  1. カスタムオブジェクトの使用: 複数の値を持つカスタムオブジェクトを作成し、そのオブジェクトを返り値として返します。
public class Main {
    public static void main(String[] args) {
        CustomObject result = returnMultipleValues();
        int value1 = result.getValue1();
        int value2 = result.getValue2();
        System.out.println(value1 + " " + value2);
    }
    
    public static CustomObject returnMultipleValues() {
        int value1 = 10;
        int value2 = 20;
        CustomObject result = new CustomObject(value1, value2);
        return result;
    }
}

class CustomObject {
    private int value1;
    private int value2;
    
    public CustomObject(int value1, int value2) {
        this.value1 = value1;
        this.value2 = value2;
    }
    
    public int getValue1() {
        return value1;
    }
    
    public int getValue2() {
        return value2;
    }
}
  1. リスト・マップなどのコンテナクラスを使用して複数の値を格納し、そのコンテナクラスを返り値として返します。
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> result = returnMultipleValues();
        int value1 = result.get(0);
        int value2 = result.get(1);
        System.out.println(value1 + " " + value2);
    }
    
    public static List<Integer> returnMultipleValues() {
        int value1 = 10;
        int value2 = 20;
        List<Integer> result = new ArrayList<>();
        result.add(value1);
        result.add(value2);
        return result;
    }
}

なお、上記の方法で返される複数の値はまとめて返されるので、呼び出し側は適宜取り出す必要があります。

bannerAds