3 回答

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
temp_storage.take(1)
這將返回修改后的List
. 它不會(huì)修改List
您調(diào)用它的位置。您忽略了返回值。
temp_storage.dropLast(1)
同樣的——你忽略了該函數(shù)正在做的工作。
println("FInal size: "+ temp_storage.size) //still size 2. Why not 1!?
它的大小相同,因?yàn)槟鷽]有對(duì)它進(jìn)行任何修改。
實(shí)現(xiàn)這一目標(biāo)的方法是什么?
如果我明白你想要什么,請(qǐng)使用:
fun padding(tokenizedinput : ArrayList<ArrayList<Double>>) = arrayListOf(tokenizedinput[0])
在這里,我們:
獲取 tokenizedinput 的第一個(gè)元素
將其包含在 中
ArrayList
,因?yàn)槟胍?code>ArrayList<ArrayList<Double>>回復(fù)

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
List.take(n)
或者List.dropLast(n)
將return
使用該操作創(chuàng)建一個(gè)新列表。它不會(huì)修改現(xiàn)有列表。嘗試以這種方式記錄或打印:-
println(temp_storage.take(1).size) // would be 1 println(temp_storage.dropLast(1).size) // would be 1
上面的輸出將是
1
,當(dāng)且僅當(dāng)列表的大小是2
要轉(zhuǎn)換為現(xiàn)有列表,請(qǐng)使用:-
temp_storage = ArrayList(temp_storage.dropLast(1)) // need to cast it to ArrayList<T> before assigning

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
要添加其他答案已經(jīng)說過的內(nèi)容,請(qǐng)從包含此方法的實(shí)際類中添加:
采取方法:
/**
* Returns a list containing first [n] elements.
*
* @throws IllegalArgumentException if [n] is negative.
*
* @sample samples.collections.Collections.Transformations.take
*/
public fun <T> Iterable<T>.take(n: Int): List<T> {
require(n >= 0) { "Requested element count $n is less than zero." }
if (n == 0) return emptyList()
if (this is Collection<T>) {
if (n >= size) return toList()
if (n == 1) return listOf(first())
}
var count = 0
val list = ArrayList<T>(n)
for (item in this) {
if (count++ == n)
break
list.add(item)
}
return list.optimizeReadOnlyList()
}
還有dropLast:
/**
* Returns a list containing all elements except last [n] elements.
*
* @throws IllegalArgumentException if [n] is negative.
*
* @sample samples.collections.Collections.Transformations.drop
*/
public fun <T> List<T>.dropLast(n: Int): List<T> {
require(n >= 0) { "Requested element count $n is less than zero." }
return take((size - n).coerceAtLeast(0))
}
可以在以下位置找到:_Collections.kt
這意味著它返回一個(gè)列表,它不會(huì)修改原始集合
添加回答
舉報(bào)