Создайте ArrayList, где следующий элемент динамически больше предыдущего на определенное число - PullRequest
0 голосов
/ 27 апреля 2020

Мне нужно создать ArrayList<Float>(), где каждый следующий элемент списка должен быть больше предыдущего на определенное число. the last element of array always = 100f но размер может измениться. Например, if size = 5,

Мне нужно что-то вроде этого ArrayList<Float> list = arrayOf(20f, 40f,60f,80f,100f). Но проблема в том, что я не знаю, сколько элементов у меня будет, и мне нужно все делать динамически. Вот мой список

 var size= 5
 var progress= 100/size.toFloat()

 list = ArrayList<Float>()
          for (i in 0 until size) {
            list.add(progress)
        }

и здесь я пытаюсь добавить следующие и предыдущие элементы

for (i in 0 until list.size) {
            val curr = list[i]
            val next = list[(i + prog).toInt()]
           }

Но не знаю, как добавить его в ArrayList Пожалуйста, помогите!

1 Ответ

2 голосов
/ 27 апреля 2020

Я предполагаю, что значения распределены равномерно. В данном случае это простая математика:

Массив [индекс] = индекс * шаг = индекс * (100 / размер)

val max = 100
val size = 7

val step = max / size.toFloat()
val list = ArrayList<Float>(size)
for (i in 0 until size) {
   list.add(step * (i+1))
}

// or better with kotlin collections
val klist = List(size) { index -> step * (index + 1) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...