第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么擴(kuò)展函數(shù)不適用于 ArrayList<ArrayList<Double>>

為什么擴(kuò)展函數(shù)不適用于 ArrayList<ArrayList<Double>>

眼眸繁星 2024-01-05 17:06:10
我對(duì) Kotlin 的 Android 開發(fā)非常陌生。我有一個(gè) ArrayList,由兩個(gè) Double 類型的 ArrayList 組成。我想丟棄/切片 Big ArrayList 中第一個(gè)元素之后的所有內(nèi)容。在遇到Kotlin 頁(yè)面上描述的屬性時(shí),我發(fā)現(xiàn)了一些函數(shù),例如等dropLast。take但是,它們?cè)趯?shí)現(xiàn)上不執(zhí)行,也沒有錯(cuò)誤。我仍然得到與具有相同長(zhǎng)度的輸入相同的輸出。add盡管, getunder column等功能Functions運(yùn)行良好。我肯定在這里遺漏了一些東西。實(shí)現(xiàn)這一目標(biāo)的方法是什么?下面是一個(gè)虛擬代碼:-fun padding(tokenizedinput : ArrayList<ArrayList<Double>>) : ArrayList<ArrayList<Double>> {    var temp_storage = tokenizedinput // of size 2    temp_storage.take(1) // OPTION 1. Only want to have first element in this ArrayList    temp_storage.dropLast(1) // OPTION 2. Only want to drop 1 element from the end    println("FInal size: "+ temp_storage.size) //still size 2. Why not 1!?    return temp_storage}
查看完整描述

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ù)


查看完整回答
反對(duì) 回復(fù) 2024-01-05
?
一只萌萌小番薯

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



查看完整回答
反對(duì) 回復(fù) 2024-01-05
?
紫衣仙女

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ì)修改原始集合


查看完整回答
反對(duì) 回復(fù) 2024-01-05
  • 3 回答
  • 0 關(guān)注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)