Kotlin學(xué)習(xí)筆記 第三篇以及實(shí)踐小demo

集合list
val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape")for (fruit in list) {
    println(fruit)
}
  • 注意:在這里使用 listOf()函數(shù)創(chuàng)建的是一個(gè)不可變的集合。在 Java 中沒有不可變的集合腊尚,但是在 Kotlin 中不可變的集合指的是,該集合中的元素只能用于讀取,不能進(jìn)行添加痪宰、修改或者刪除行疏。

  • 這么設(shè)計(jì)的理由和 val匆光、類默認(rèn)不可繼承是一樣的,可見 Kotlin 在不可變性方面的控制及其嚴(yán)格酿联。那么如果我們確實(shí)需要?jiǎng)?chuàng)建一個(gè)可變的集合终息,可以使用mutableListOf()函數(shù)即可。

val set = setOf("Apple", "Banana", "Orange", "Pear", "Grape")for (fruit in set) {
    println(fruit)
}

println("==========================")
val mutableSet = mutableSetOf("Apple", "Banana", "Orange", "Pear", "Grape")
mutableSet.add("Watermelon")for (fruit in mutableSet) {
    println(fruit)
}
  • List 集合的用法其實(shí)和 Set 一模一樣贞让,只需要將創(chuàng)建集合的方法換成 setOf()和 mutableSetOf() 即可周崭。
集合Map
  • Map 和前面的 List 和 Set 有很大的不同,傳統(tǒng)的 Map 用法是先創(chuàng)建一個(gè) HashMap 的實(shí)例喳张,然后將一個(gè)個(gè)的鍵值對添加到 Map 中续镇,比如給每個(gè)水果一個(gè)對應(yīng)的編號。
val map = HashMap<String, Int>()
map.put("Apple", 1)
map.put("Banana", 2)
map.put("Orange", 3)
map.put("Pear", 4)
map.put("Grape", 5)
  • 這種寫法與 Java 中的寫法相似销部,但是在 Kotlin 中并不建議使用 put() 和 get() 方法對 Map 進(jìn)行添加和讀取操作摸航,而是更加建議使用一種類似于數(shù)組下標(biāo)的語法結(jié)構(gòu),比如向 Map 中添加一條數(shù)據(jù)可以這么寫:
map["Apple"] = 1
val number = map["Apple"]//從 Map 中讀取一條數(shù)據(jù)
//因此可以將代碼優(yōu)化為一下形式
val map = HashMap<String, Int>()
map["Apple"] = 1
map["Banana"] = 2
map["Orange"] = 3
map["Pear"] = 4
map["Grape"] = 5
  • 這樣的寫法也不是最簡便的柴墩,在 Kotlin 中提供了一個(gè) mapOf() 和 mutableMapOf() 函數(shù)來繼續(xù)簡化 Map 的用法忙厌。在 mapOf() 函數(shù)中,我們可以直接傳入初始化的鍵值對組合來完成對 Map 集合的創(chuàng)建:
val map = mapOf("Apple" to 1, "Banana" to 2, "Orange" to 3, "Pear" to 4, "Grape" to 5)
 
集合的函數(shù)式 API
  • 需求:如何在一個(gè)水果集合中找到單詞最長的哪個(gè)水果江咳?
    傳統(tǒng)實(shí)現(xiàn)方式:
val list = mutableListOf("Apple", "Banana", "Orange", "Pear", "Grape")
var maxLengthFruit = "";for (fruit in list) {
    if (fruit.length > maxLengthFruit.length) {
        maxLengthFruit = fruit
    }
}
println("max length fruit is " + maxLengthFruit)

使用集合 API 實(shí)現(xiàn)(集合內(nèi)數(shù)據(jù)類型必須一致):

val list = mutableListOf("Apple", "Banana", "Orange", "Pear", "Grape")
val maxLengthFruit = list.maxBy { it.length }
println("max length fruit is " + maxLengthFruit)

學(xué)習(xí)了一些kotlin這些接觸逢净,有了些kotlin使用語感,順手寫個(gè)kotlin 語言自定義的柱狀圖實(shí)際體驗(yàn)下歼指,下面鏈接為demo在github的地址
kotlin 語言自定義的柱狀圖

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末爹土,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子踩身,更是在濱河造成了極大的恐慌胀茵,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挟阻,死亡現(xiàn)場離奇詭異琼娘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)附鸽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門脱拼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坷备,你說我怎么就攤上這事熄浓。” “怎么了省撑?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵赌蔑,是天一觀的道長俯在。 經(jīng)常有香客問我,道長娃惯,這世上最難降的妖魔是什么跷乐? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮石景,結(jié)果婚禮上劈猿,老公的妹妹穿的比我還像新娘。我一直安慰自己潮孽,他們只是感情好揪荣,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著往史,像睡著了一般仗颈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上椎例,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天挨决,我揣著相機(jī)與錄音,去河邊找鬼订歪。 笑死脖祈,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刷晋。 我是一名探鬼主播盖高,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼眼虱!你這毒婦竟也來了喻奥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤捏悬,失蹤者是張志新(化名)和其女友劉穎撞蚕,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體过牙,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡甥厦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寇钉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矫渔。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖摧莽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情顿痪,我是刑警寧澤镊辕,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布油够,位于F島的核電站,受9級特大地震影響征懈,放射性物質(zhì)發(fā)生泄漏石咬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一卖哎、第九天 我趴在偏房一處隱蔽的房頂上張望鬼悠。 院中可真熱鬧,春花似錦亏娜、人聲如沸焕窝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽它掂。三九已至,卻和暖如春溯泣,著一層夾襖步出監(jiān)牢的瞬間虐秋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工垃沦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留客给,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓肢簿,卻偏偏與公主長得像靶剑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子译仗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容