java中return如何返回两个值
Java では return 文で複数の値を返すことはできませんが、次のような方法で複数の値を返却できます。
- 配列を使用:配列を作成し、複数の値を格納して、戻り値としてその配列を返します。
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;
}
}
- カスタムオブジェクトの使用: 複数の値を持つカスタムオブジェクトを作成し、そのオブジェクトを返り値として返します。
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;
}
}
- リスト・マップなどのコンテナクラスを使用して複数の値を格納し、そのコンテナクラスを返り値として返します。
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;
}
}
なお、上記の方法で返される複数の値はまとめて返されるので、呼び出し側は適宜取り出す必要があります。