вызов метода внутри одного класса

100
04 октября 2019, 21:30

есть два метода в одном классе, первый ищет минимальное и максимальное значение в массиве public void min_max() , во втором нужно вызвать первый метод для смены минимального и максимального значения местами.

public void min_max()

 public  void min_max(){
        int[] numbers = {15, 18, 19, 18};
            int idMin = 0;
            int idMax = 0;
        int min = numbers[0];
            int max = numbers[0];
int count =0;
        for(int i = 0; i < numbers.length; i++){
            if(min == numbers[i]){
                count++;
            }
            if(min>numbers[i]) {
                min = numbers[i];
                idMin = i;
            }
            if(max<numbers[i]) {
                max = numbers[i];
                idMax = i;
            }
        }
        }
 public  void change_MinMax() {
    **здесь нужно вызвать public void min_max() для смены местами максимального и минимального элемента массива**
            numbers[idMin] = max; 
            numbers[idMax] = min;
            for(int j = 0 ; j < numbers.length; j ++){
                System.out.print(numbers[j] + ", ");
            }
        }
Answer 1

Можно так

public static void main(String[] args) {
        int[] numbers = {15, 18, 19, 18};
        int minValIdx = getMinIndex(numbers);
        int maxValIdx = getMaxIndex(numbers);
        change_MinMax(numbers, maxValIdx, minValIdx);
    }
    public static int getMinIndex(int[]numbers){
        int valIdx = 0;
        int val = Integer.MAX_VALUE;
        for (int i = 0; i<numbers.length;i++){
            if(numbers[i] < val){
                val = numbers[i];
                valIdx = i;
            }
        }
        return valIdx;
    }

    public static int getMaxIndex(int[]numbers){
        int valIdx = 0;
        int val = Integer.MIN_VALUE;
        for (int i = 0; i<numbers.length;i++){
            if(numbers[i]> val){
                val = numbers[i];
                valIdx = i;
            }
        }
        return valIdx;
    }
    public  static void change_MinMax(int[]numbers, int idMax, int idMin) {
        int min = numbers[idMin];
        int max = numbers[idMax];
        numbers[idMin] = max;
        numbers[idMax] = min;
        for(int j = 0 ; j < numbers.length; j ++){
            System.out.print(numbers[j] + ", ");
        }
    }

READ ALSO
Как вывести в TableView субполе класса?

Как вывести в TableView субполе класса?

Есть класс Contract, у которого есть поле типа User

111
Как сделать запрос в базу данных, возвращающий кастомные поля?

Как сделать запрос в базу данных, возвращающий кастомные поля?

Перечитывая документацию так и не нашел как сделать подобный запрос в базу данныхПрошу помощи у более опытных товарищей

107
Переходы между фрагментами в BottomNavigationView

Переходы между фрагментами в BottomNavigationView

При переходах между фрагментами внизу отображается текущий фрагмент (подсвечивается иконка)Но при нажатии кнопки "назад" и хождению по стеку,...

95