Получить индекс элемента в массиве массивов в Groovy - PullRequest
0 голосов
/ 24 мая 2019

У меня есть массив массивов.

def my_array = [[null], [10382], [11901], [null], [10386], [10385], [11901], [10386], [11901], [10386], [3], [null], [10504], [3]]

Я хочу найти индекс ПЕРВОГО вхождения элемента, например [3].

Я использую findIndexOf.

 def index = my_array.findIndexOf { it == [3] }

Однако, это возвращает -1.Я думаю, что это индекс элемента в массиве [3], а не в массиве my_array.Как получить индекс элемента [3] в my_array?

1 Ответ

1 голос
/ 24 мая 2019

Запуск этого кода:

def my_array = [[null],  // index  0
                [10382], // index  1
                [11901], // index  2
                [null],  // index  3
                [10386], // index  4
                [10385], // index  5
                [11901], // index  6
                [10386], // index  7
                [11901], // index  8
                [10386], // index  9
                [3],     // index 10
                [null],  // index 11
                [10504], // index 12
                [3]]     // index 13

def index = my_array.findIndexOf { it == [3] }
println "index: $index"

, который идентичен вашему коду, приводит к:

~> groovy solution.groovy 
index: 10

~>

на Java 8 и Groovy 2.1.16.Другими словами, ваш код должен работать.

Как примечание: вам действительно нужен список списков?Поскольку все списки имеют длину один, вы можете просто иметь список элементов напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...