欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kotlin中常見的List使用示例教程

 更新時(shí)間:2023年11月28日 11:32:41   作者:Mr YiRan  
filter 就像其本意一樣,可以通過 filter 對(duì) Kotlin list 進(jìn)行過濾,本文重點(diǎn)給大家介紹Kotlin中常見的List使用,感興趣的朋友一起看看吧

Kotlin是一種新興的編程語(yǔ)言,它在java基礎(chǔ)上添加了許多新的特征,使得它更加方便和強(qiáng)大,list是kotlin中一個(gè)非常常見的數(shù)據(jù)類型,它可以用來存儲(chǔ)一組有序的數(shù)據(jù),下面看下Kotlin中常見的List使用。

1.filter

filter 就像其本意一樣,可以通過 filter 對(duì) Kotlin list 進(jìn)行過濾。

fun main()
{
    val numbers = listOf(1, -2, 3, -4, 5, -6)
    val positives = numbers.filter { x -> x > 0 }
    val negatives = numbers.filter { it < 0 }      // 這里我們可以使用 it 
    println("positive values: ${positives}")        // 打印 positive values: [1, 3, 5]
    println("negative values: ${negatives}")        // 打印 positive values: [-2, -4, -6]
}

2.map

map擴(kuò)展函數(shù)能使我們能夠變化應(yīng)用于集合中的所有元素

fun main()
{
    val numbers = listOf(1, -2, 3, -4, 5, -6)     
    val doubled = numbers.map { x -> x * 2 }
    val tripled = numbers.map { it * 3 }          
    println("doubled values: ${doubled}")       // 打印 doubled values: [2, -4, 6, -8, 10, -12]
    println("tripled values: ${tripled}")       // 打印 tripled values: [3, -6, 9, -12, 15, -18]
}

3.count

count函數(shù)返回集合中的元素總數(shù)或與給定條件匹配的元素?cái)?shù)。

fun main()
{
    val numbers = listOf(1, -2, 3, -4, 5, -6)
    val totalCount = numbers.count() //集合中的元素總數(shù)                    
    val evenCount = numbers.count { it % 2 == 0 }  //與給定條件匹配的元素?cái)?shù)      
    println("totalCount: ${totalCount}")    // 打印 totalCount: 6
    println("evenCount: ${evenCount}")      // 打印 evenCount: 3
}

4.first,last

返回列表中第一個(gè)或最后一個(gè)元素的值。

fun main()
{
    val numbers = listOf(1, -2, 3, -4, 5, -6)            
    val first = numbers.first()                          
    val last = numbers.last()                            
    val firstEven = numbers.first { it % 2 == 0 }        
    val lastOdd = numbers.last { it % 2 != 0 }                  
    println("first element: ${first}")          // 打印 first element: 1
    println("last element: ${last}")            // 打印 last element: -6
    println("first Even element: ${firstEven}") // first Even element: -2
    println("last Odd element: ${lastOdd}")     // last Odd element: 5
}

5.any,all,none

這些函數(shù)檢查是否存在與給定條件匹配的集合元素,并返回布爾值。
any:集合中存有一個(gè)或多個(gè)元素符合條件時(shí)返回true,否則返回false
all:當(dāng)且僅當(dāng)該集合中所有元素都滿足條件時(shí),返回true;否則都返回false。
node:如果集合中沒有符合匹配條件的元素,返回true,否則返回false

fun main()
{
    val numbers = listOf(1, -2, 3, -4, 5, -6)            
    val anyNegative = numbers.any { it < 0 }             
    val anyGT6 = numbers.any { it > 6 }                  
    val allEven = numbers.all { it % 2 == 0 }            
    val allLess6 = numbers.all { it < 6 }  
    val allEven = numbers.none { it % 2 == 1 }           
    val allLess6 = numbers.none { it > 6 }               
    println("any negative elements: ${anyNegative}")    // 打印 any negative elements: true
    println("any elements larger than six: ${anyGT6}")  // any elements larger than six: false
    println("是否所有元素都是雙數(shù):${allEven}")           // 是否所有元素都是雙數(shù):false
    println("是否所有元素都小于6: ${allLess6}")           // 是否所有元素都小于6: true
}

6.find,findLast

find和findLast函數(shù)返回與給定條件匹配的第一個(gè)或最后一個(gè)集合元素。如果沒有這樣的元素,函數(shù)將返回null

fun main(string: Array<String>) {
    val test = listOf("one", "two", "three", "four", "five", "six")
    //從開頭查詢,字符長(zhǎng)度大3的元素
    println(test.find {
        it.length > 2
    })
    println(test.findLast { it.length > 3 })
}
//輸出
one
five

7.indexOf()和lastIndexOf()查找元素下標(biāo)

在列表中,都可以使用indexOf() 或者lastIndexOf() 查詢到元素在集合中的位置。
如果集合中沒有該對(duì)象,則返回-1。

fun main(string: Array<String>) {
    val numbers = listOf(1, 2, 3, 4, 2, 5)
    println(numbers.indexOf(2))
    println(numbers.lastIndexOf(2))
}
//輸出
1
4

還有一種擴(kuò)展方法

  • indexOfFirst()返回與關(guān)鍵字匹配的第一個(gè)元素的索引,如果沒有此類元素,則返回 -1。
  • indexOfLast() 返回與謂詞匹配的最后一個(gè)元素的索引,如果沒有此類元素,則返回 -1。
fun main(string: Array<String>) {
    val numbers = mutableListOf("A", "B", "B", "C", "C", "A", "C")
    println(numbers.indexOfFirst { it == "A" })
    println(numbers.indexOfLast { it == "A" })
}
//輸出
0
5

8.Slice切片

該函數(shù)返回具有給定索引的集合元素列表。

fun main(string: Array<String>) {
    //我們得到一個(gè)字符串?dāng)?shù)組
    val test = listOf("A", "B", "C", "D", "E", "F", "G")
    val temp = test.slice(listOf(1,4,3))
    println(temp)
}
//輸出
[B, E, D]

我們注意到,截取后的集合,也是按照我們傳入的下標(biāo)順序進(jìn)行獲取的。
索引既可以是作為集合的形式傳入,也可以是[區(qū)間]

fun main(string: Array<String>) {
    //我們得到一個(gè)字符串?dāng)?shù)組
    val test = listOf("A", "B", "C", "D", "E", "F", "G")
    //截取 下標(biāo)從2 到4的 集合集
    val temp = test.slice(2..4)
    println(temp)
	//截取 步長(zhǎng)為2的 指定區(qū)間的參數(shù)
    val temp1 = test.slice(2..4 step 2)
    println(temp1)
}
//輸出
[C, D, E]
[C, E]

9.Take()和drop()獲取指定長(zhǎng)度

slice在使用的過程中可能會(huì)越界。
而take 和drop截取的時(shí)候不會(huì)產(chǎn)生越界的問題。

  • take :從頭開始獲取指定長(zhǎng)度的元素,如果原始集合長(zhǎng)度不夠,則返回整個(gè)集合對(duì)象。
  • drop:從指引位置開始截取到集合尾部。
fun main(string: Array<String>) {
    //我們得到一個(gè)字符串?dāng)?shù)組
    val test = listOf("A", "B", "C", "D", "E", "F", "G")
    //從頭截取
    val temp = test.take(5)
    println(temp)
    //從下標(biāo)2的元素開始, 包括下標(biāo)2的元素本身
    val temp1 = test.drop(2)
    println(temp1)
}
//輸出
[A, B, C, D, E]
[C, D, E, F, G]

到此這篇關(guān)于Kotlin中常見的List使用的文章就介紹到這了,更多相關(guān)Kotlin List使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • maven鏡像倉(cāng)庫(kù)的配置過程

    maven鏡像倉(cāng)庫(kù)的配置過程

    本文詳細(xì)介紹了MAVEN_HOME的配置步驟、Path環(huán)境變量的設(shè)置、檢測(cè)配置是否成功的方法、修改默認(rèn)的maven依賴包下載路徑以及配置阿里鏡像倉(cāng)庫(kù)的路徑,同時(shí)分享了作者在配置過程中遇到的問題,如命令不識(shí)別、版本不匹配等,并提供了解決方案
    2024-09-09
  • Spring Boot 中使用cache緩存的方法

    Spring Boot 中使用cache緩存的方法

    Spring Cache是Spring針對(duì)Spring應(yīng)用,給出的一整套應(yīng)用緩存解決方案。下面小編給大家?guī)砹薙pring Boot 中使用cache緩存的方法,感興趣的朋友參考下吧
    2018-01-01
  • Java:泛型知識(shí)知多少

    Java:泛型知識(shí)知多少

    這篇文章主要介紹了java泛型基礎(chǔ)知識(shí)及通用方法,從以下幾個(gè)方面介紹一下java的泛型: 基礎(chǔ), 泛型關(guān)鍵字, 泛型方法, 泛型類和接口,感興趣的可以了解一下
    2021-08-08
  • 詳解mybatis批量插入10萬條數(shù)據(jù)的優(yōu)化過程

    詳解mybatis批量插入10萬條數(shù)據(jù)的優(yōu)化過程

    這篇文章主要介紹了詳解mybatis批量插入10萬條數(shù)據(jù)的優(yōu)化過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 泛談Java中的不可變數(shù)據(jù)結(jié)構(gòu)

    泛談Java中的不可變數(shù)據(jù)結(jié)構(gòu)

    開發(fā)人員通常認(rèn)為擁有final引用,或者val在Kotlin或Scala中,足以使對(duì)象不可變。這篇博客文章深入研究了不可變引用和不可變數(shù)據(jù)結(jié)構(gòu),下面小編來和大家一起學(xué)習(xí)它
    2019-05-05
  • Java經(jīng)典面試題匯總:Spring MVC

    Java經(jīng)典面試題匯總:Spring MVC

    本篇總結(jié)的是Spring MVC框架相關(guān)的面試題,后續(xù)會(huì)持續(xù)更新,希望我的分享可以幫助到正在備戰(zhàn)面試的實(shí)習(xí)生或者已經(jīng)工作的同行,如果發(fā)現(xiàn)錯(cuò)誤還望大家多多包涵,不吝賜教,謝謝
    2021-07-07
  • 一篇文章帶你了解Java 中序列化與反序列化

    一篇文章帶你了解Java 中序列化與反序列化

    這篇文章主要介紹了Java 序列化與反序列化(Serialization),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • 使用Java開發(fā)實(shí)現(xiàn)OAuth安全認(rèn)證的應(yīng)用

    使用Java開發(fā)實(shí)現(xiàn)OAuth安全認(rèn)證的應(yīng)用

    這篇文章主要介紹了使用Java開發(fā)實(shí)現(xiàn)OAuth安全認(rèn)證的應(yīng)用的方法,OAuth安全認(rèn)證經(jīng)常出現(xiàn)于社交網(wǎng)絡(luò)API應(yīng)用的相關(guān)開發(fā)中,需要的朋友可以參考下
    2015-11-11
  • Java中實(shí)現(xiàn)接口與繼承的區(qū)別及說明

    Java中實(shí)現(xiàn)接口與繼承的區(qū)別及說明

    這篇文章主要介紹了Java中實(shí)現(xiàn)接口與繼承的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java中保證線程順序執(zhí)行的操作代碼

    Java中保證線程順序執(zhí)行的操作代碼

    本文給大家分享一篇教程關(guān)于java線程順序執(zhí)行問題,如何保證線程的順序執(zhí)行呢?今天通過實(shí)例代碼給大家詳細(xì)講解下,感興趣的朋友跟隨小編一起看看吧
    2021-05-05

最新評(píng)論