Как вернуть несколько значений из метода в java?

Пользователь

от velma , в категории: Java , 2 года назад

Как вернуть несколько значений из метода в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 2 года назад

@velma  Вы можете объявлять массив значений для возвращения нескольких значений.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.Random;

class Main {
    public static int[] get_random_numbers(){
        Random rand = new Random();

        return new int[]{rand.nextInt(), rand.nextInt(), rand.nextInt()};
    }

    public static void main(String[] args) throws Exception {
        int[] random_numbers = get_random_numbers();

        for (int i = 0; i < random_numbers.length; i++){
            System.out.println(random_numbers[i]);
        }

        // Пример вывода : 
        //-279229926
        // -1161088692
        // 1721970958
    }
} 

Пользователь

от catherine_wintheiser , год назад

@velma 

В Java можно вернуть несколько значений из метода, используя различные подходы:

  1. Использование массива: вы можете создать массив, заполнить его необходимыми значениями, а затем вернуть этот массив из метода. Например:
1
2
3
4
5
6
7
public static int[] getMinMax(int[] arr) {
    int[] result = new int[2];
    // Вычисление минимального и максимального значений
    result[0] = min;
    result[1] = max;
    return result;
}


  1. Использование класса-контейнера: вы можете создать класс, содержащий несколько переменных, и вернуть экземпляр этого класса из метода. Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
public class MinMax {
    public int min;
    public int max;
}

public static MinMax getMinMax(int[] arr) {
    MinMax result = new MinMax();
    // Вычисление минимального и максимального значений
    result.min = min;
    result.max = max;
    return result;
}


  1. Использование типа данных, поддерживающего несколько значений: вы можете использовать кортеж (Tuple) или коллекцию, которые могут содержать несколько значений. Начиная с Java 8, можно использовать класс java.util.Optional для возврата нескольких значений из метода. Например:
1
2
3
4
5
6
7
public static Optional<MinMax> getMinMax(int[] arr) {
    MinMax result = new MinMax();
    // Вычисление минимального и максимального значений
    result.min = min;
    result.max = max;
    return Optional.of(result);
}


Важно отметить, что последний подход (использование Optional) не всегда наиболее удобный и эффективный, так как добавляет дополнительную сложность и необходимость проверять наличие значений. Он может быть полезен, если возвращаемые значения не являются обязательными или имеют неопределенное значение в некоторых случаях.