获取数组的最大N个元素(及其索引)

时间:2017-05-02 17:23:27

标签: arrays scala

我有一个包含Integers的数组,如下所示:

val my_array = Array(10, 20, 6, 31, 0, 2, -2)

我需要获得此数组的最多3个元素及其相应的索引(使用单个函数或两个单独的函数)。

例如,输出可能类似于:

// max values
Array(31, 20, 10)

// max indices
Array(3, 1, 0)

虽然操作看起来很简单,但我无法找到任何相关的功能。

2 个答案:

答案 0 :(得分:3)

这是一种直截了当的方式 - EditText然后排序:

zipWithIndex

答案 1 :(得分:1)

以下是另一种方法:

(my_array zip Stream.from(0)).
  sortWith(_._1 > _._1).
  take(3)

res1: Array[(Int, Int)] = Array((31,3), (20,1), (10,0))