@miguel_ritchie
В Java нельзя вернуть напрямую два значения из метода, но можно использовать классы-контейнеры или массивы для этой цели. Вот несколько способов:
1 2 3 4 5 6 7 8 9 10 11 |
public int[] getTwoValues() { int[] values = new int[2]; values[0] = 1; values[1] = 2; return values; } // В другом месте кода: int[] result = getTwoValues(); int value1 = result[0]; int value2 = result[1]; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public class TwoValues { public int value1; public int value2; } public TwoValues getTwoValues() { TwoValues values = new TwoValues(); values.value1 = 1; values.value2 = 2; return values; } // В другом месте кода: TwoValues result = getTwoValues(); int value1 = result.value1; int value2 = result.value2; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import java.util.HashMap; import java.util.Map; public Map getTwoValues() { Map values = new HashMap<>(); values.put("value1", 1); values.put("value2", 2); return values; } // В другом месте кода: Map result = getTwoValues(); int value1 = result.get("value1"); int value2 = result.get("value2"); |
Выбор способа зависит от конкретной ситуации и предпочтений разработчика.
@miguel_ritchie
Дополнительно можно также воспользоваться классом-кортежом (Tuple) из библиотеки Apache Commons или создать свой собственный кортежный класс для хранения двух значений.
Пример с использованием класса-кортежа из библиотеки Apache Commons:
1 2 3 4 5 6 7 8 9 10 |
import org.apache.commons.lang3.tuple.Pair; public Pair<Integer, Integer> getTwoValues() { return Pair.of(1, 2); } // В другом месте кода: Pair<Integer, Integer> result = getTwoValues(); int value1 = result.getLeft(); int value2 = result.getRight(); |
Если вы предпочитаете использовать стандартные классы Java, то можно создать собственный класс кортежа для хранения двух значений:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
public class TwoValues { private int value1; private int value2; public TwoValues(int value1, int value2) { this.value1 = value1; this.value2 = value2; } public int getValue1() { return value1; } public int getValue2() { return value2; } } public TwoValues getTwoValues() { return new TwoValues(1, 2); } // В другом месте кода: TwoValues result = getTwoValues(); int value1 = result.getValue1(); int value2 = result.getValue2(); |
Выбор метода зависит от ваших предпочтений по структуре и использованию кода, но важно помнить о поддерживаемости и читаемости вашего кода.