Java-查找第二组2D数组中的最大数

7lrncoxx  于 2023-06-28  发布在  Java
关注(0)|答案(1)|浏览(103)

如何找到所有dp [1]值的最大数量?在下面的例子中,答案是21,因为我只看集合的第二个数字。目前正在使用for循环,但正在寻找有效的方法。

int[][] dp = new int[30][2];

[2019 - 05 - 15]【2019 - 05 - 16 00:01:00】
此问题略有不同Java- Finding maximum number in a 2D array

ut6juiuv

ut6juiuv1#

这可以通过使用streams以简单的方式解决:

int[][] dp = {{5,9}, {6,7}, {4, 21}, {7, 12}};

int max = Arrays.stream(dp).mapToInt(a -> a[1]).max().orElseThrow();

这将遍历外部数组,将每个内部数组Map到该数组的第二个元素,然后返回这些Map值的最大元素。

明细

  1. Arrays.stream(dp)-返回数组元素的Stream<int[]>
  2. mapToInt(a -> a[1])-将ToIntFunction<int[]>应用于Stream<int[]>的每个元素,返回这些结果的IntStream。这使用了函数a -> a[1],它接受一个数组并返回索引为1的元素。
  3. max()-返回IntStream中的最大值int作为OptionalInt。这个OptionalInt将包含最大值(除非流为空,在这种情况下,它将是一个空的OptionalInt)。
  4. orElseThrow-返回OptionalInt中的int值,如果OptionalInt为空,则抛出NoSuchElementException

相关问题