Что эквивалентно этому коду kotlin?
stack = stack.stream()
.map(e -> // some code here)
.collect(Collectors.toCollection(ArrayDeque::new));
У меня есть этот
stack = stack.withIndex()
.map { (i, v) -> {
// some code here
}}
.toCollection(ArrayDeque::new)
Я не могу разрешить ArrayDeque :: new part. Как это сделать в kotlin?
Обновление
Это мой оригинальный код, и я работаю для стека, используя ArrayDeque, мне нужно обновить стек по указанным c index from 0. Теперь я получил ошибку, что не могу присвоить код, предложенный ниже, стеку
var stack = ArrayDeque<Long>()
for (op in operations){
val split = op.split(' ')
when (split[0]) {
"push" -> {
stack.push(split[1].toLong())
}
"pop" -> {
stack.pop()
}
else -> {
stack = stack.withIndex()
.map { (i, v) -> {
if (i < split[1].toInt())
v + split[2].toLong()
else
v
}}
.toCollection(ArrayDeque())
}
}
if (stack.isEmpty()){
println("EMPTY")
} else {
println(stack.peekFirst()!!)
}
}
Вот ошибка
error: type inference failed. Expected type mismatch: inferred type is ArrayDeque<Long> but ArrayDeque<Long> was expected