Получить наименьший элемент в определенной строке или столбце во втором массиве - PullRequest
2 голосов
/ 28 апреля 2019

Мне интересно, как можно получить наименьший элемент в определенной строке второго массива в Java.

Я пробовал arrays.sort, но он не работает, как ожидалось.

вот что у меня есть:

static int largestinrow(int[][] arr, int row){
    int nums = arrays.sort(arr[row]);
    return nums;
}

Ответы [ 3 ]

2 голосов
/ 28 апреля 2019

Вы можете использовать Arrays.stream() и IntStream.min():

static int smallestinrow(int[][] arr, int row){
    return Arrays.stream(arr[row])
            .min()
            .orElseThrow(IllegalArgumentException::new);
}

Чтобы получить наименьшее число во всем 2-мерном массиве, которое вы можете использовать:

static int smallest(int[][] arr){
    return Arrays.stream(arr)
            .flatMapToInt(Arrays::stream)
            .min()
            .orElseThrow(IllegalArgumentException::new);
}

Если вы хотите вернуть значение по умолчанию для пустого массива, вместо исключения вы можете использовать .orElse() вместо .orElseThrow().

1 голос
/ 28 апреля 2019

Ваш первоначальный вопрос состоял в том, чтобы найти наименьшее число.Если вы используете Java 7 и хотите внести минимальные изменения в свой код, вы можете использовать это.

 import java.util.Arrays;

public class Main {
  public static void main(String[] args) {
    int[][] a = new int[][]{{1, 0}, {1, 4}};
    System.out.println(smallestinrow(a, 0)[0]);
  }

  static int[] smallestinrow(int[][] arr, int row) {
    Arrays.sort(arr[row]);
    return arr[0];//first element after ordering in ascending
  }
}
1 голос
/ 28 апреля 2019

Вы можете использовать:

static int smallestinrow(int[][] arr, int row) {
    Arrays.sort(arr[row]); // sort the array with the specific index(row)
    return arr[row][0];    // get the first value of the specific array
}

Пример:

int[][] arr = {{1, 2, 22, 3, 0}, {1, 2, 33, -1, 66}};
System.out.println(smallestinrow(arr, 1));
=> -1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...