Есть ли способ создать ненулевой массив из диапазона?

В Java простой массив может быть создан с использованием традиционного цикла for:

ImageButton[] buttons = new ImageButton[count]; for (int i = 0; i < count; i++) { buttons[i] = view.findViewById(BUTTON_IDS[i]); } 

Простое преобразование в Котлин дает следующее:

 val buttons = arrayOfNulls<ImageButton>(count) for (i in 0..count) { buttons[i] = view.findViewById<ImageButton>(BUTTON_IDS[i]) } 

Проблема в том, что теперь каждый элемент массива является необязательным; который загадывает мой код ? операторы.

Есть ли способ создать массив аналогичным образом, но без дополнительного типа?

Да, используйте конструктор Array :

 val buttons = Array(count) { view.findViewById<ImageButton>(BUTTON_IDS[it])!! }