Android面試題之Kotlin常見集合操作技巧

本文首發于公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點

list

創建和修改

不可變list,listOf

var list = listOf("a","d","f")
println(list.getOrElse(3){"Unknown"})
println(list.getOrNull(3) ?: "Unknown")

創建和修改可變list,mutableList

val mutableList = mutableListOf("a","d","f")
mutableList.removeIf { it.contains("a") }
遍歷和解構

forIn,forEach,forEachIndexed

用下劃線_來跳過不需要的元素

for (s in list){println(s)
}list.forEach{println(it)
}list.forEachIndexed { index, item ->println("$index, $item")
}
//解構
val(a,_,c) = list 

"_"表示跳過這個元素,跳過的元素不會被讀取

轉換
list.toMutableList()
去重
list.distinct()
快速篩選和排序

可以結合filter、forEach、sortedByDescending、sortedBy來快速對一個list進行篩選和排序

val resultList = mutableListOf<AppInfo>()
val recommendations = listOf(AppA(), AppB(), AppC())
//根據app的安裝時間按照倒序排列
recommendations.filter { //filter里跟篩選的條件,符合條件的數據會繼續走后面的排序it.isAppInstalled() 
}  
.sortedByDescending { //這里是排序的條件,sortedBy是正序it.getAppInstalledTime() 
}.forEach { resultList.add(it) }

set

不可重復的,去重里面的元素,函數操作基本同list

map

fun main() {val map = mapOf("Jack" to 20, "Jim" to 18)mapOf(Pair("Jim",20), Pair("json",30))println(map["Jack"])println(map.getValue("Jack"))println(map.getOrElse("java"){"unknown"})println(map.getOrDefault("java", 0))map.forEach{println("${it.key}, ${it.value}")}val mutableMap = mutableMapOf("Jack" to 20, "Jim" to 18)//添加元素mutableMap += "jim" to 30mutableMap["jim"] = 31mutableMap.getOrPut("role"){19}println(mutableMap)
}

to,實際上是一個函數,返回一個Pair結果

去重
val clone = filteredDirectories.clone() as ArrayList<Directory>
//數據去重。
callback(clone.distinctBy { it.path.getDistinctPath() } as ArrayList<Directory>)

歡迎關注我的公眾號查看更多精彩文章!

AntDream

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16966.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16966.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16966.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kubernetes可視化界面之DashBoard

1.1 DashBoard Kubernetes Dashboard 是 Kubernetes 集群的一個開箱即用的 Web UI&#xff0c;提供了一種圖形化的方式來管理和監視 Kubernetes 集群中的資源。它允許用戶直接在瀏覽器中執行許多常見的 Kubernetes 管理任務&#xff0c;如部署應用、監控應用狀態、執行故障排查…

用循環神經網絡預測股價

循環神經網絡可以用來對時間序列進行預測&#xff0c;之前我們在介紹循環神經網絡RNN,LSTM和GRU的時候都用到了正弦函數預測的例子&#xff0c;其實這個例子就是一個時間序列。而在眾多的時間序列例子中&#xff0c;最普遍的就是股價的預測了&#xff0c;股價序列是一種很明顯的…

鏈表練習題

返回倒數第K個節點 快慢指針 讓快指針先走k步&#xff0c;再使得快指針與慢指針同時走一步&#xff0c;這樣沒有開額外空間&#xff0c;空間復雜度較低。 代碼實現如下&#xff1a; struct ListNode {int val;struct ListNode* next;}; int kthToLast(struct ListNode* head…

第 52 期:MySQL 半同步復制頻繁報錯

社區王牌專欄《一問一實驗&#xff1a;AI 版》全新改版歸來&#xff0c;得到了新老讀者們的關注。其中不乏對 ChatDBA 感興趣的讀者前來咨詢&#xff0c;表達了想試用體驗 ChatDBA 的意愿&#xff0c;對此我們表示感謝 &#x1f91f;。 目前&#xff0c;ChatDBA 還在最后的準備…

el-table實現合并特定列的所有行

el-table實現合并特定列的所有行 示例&#xff1a; 在這里插入圖片描述 const objectSpanMethod ({ row, column, rowIndex, columnIndex }) > {if (columnIndex 5 || columnIndex 7) {// 就是只保留第一行&#xff0c;其他直接不要&#xff0c;然后行數是列表長度if …

2024年03月 Python(一級)真題解析#中國電子學會#全國青少年軟件編程等級考試

Python等級考試(1~6級)全部真題?點這里 一、單選題(共25題,共50分) 第1題 下列哪個命令,可以將2024轉換成’2024’ 呢?( ) A:str(2024) B:int(2024) C:float(2024) D:bool(2024) 答案:A 本題考察的是str() 語句,將數字轉換成字符串用到的是str() 語句。 …

Java:IO

首 java.io中有百萬計的類&#xff0c;如何找到自己需要的部分&#xff1f; 流 IO涉及到一個“流”stream的概念&#xff0c;可以簡單理解成數據從一個源頭到一個目的地。明白數據從哪來&#xff0c;要到哪里去&#xff0c;數據流中是字節還是字符之后&#xff0c;才能找到自…

回顧下Java中的基本數據類型以及Integer與int的區別

一、Java中的基本數據類型&#xff08;Primitive Data Types&#xff09;共有八種&#xff0c;它們分別是&#xff1a; byte&#xff1a;字節型&#xff0c;用于表示8位整數&#xff0c;取值范圍從-128到127&#xff08;包括-128和127&#xff09;。 short&#xff1a;短整型&…

由于找不到d3dx9_39.dll,無法繼續執行代碼的5種解決方法

在現代科技發展的時代&#xff0c;電腦已經成為我們生活中不可或缺的一部分。然而&#xff0c;由于各種原因&#xff0c;我們可能會遇到一些電腦問題&#xff0c;其中之一就是“d3dx9_39.dll丟失”。這個問題可能會導致我們在運行某些游戲或應用程序時遇到錯誤提示&#xff0c;…

AI 生成第9篇測試文章:測試人員如何發揮自己在團隊中的作用?

背景 在快速迭代的軟件開發環境中&#xff0c;測試人員的角色早已超越了傳統的“找bug”范疇&#xff0c;TA們成為了保證產品質量、促進團隊協作、推動技術創新的重要力量。本文將深入探討測試人員如何在團隊中發揮更加全面和深入的作用&#xff0c;成為不可或缺的一環。 1. …

Vue中引入組件需要哪三步

在Vue中引入組件通常需要以下三步&#xff1a; 導入組件&#xff1a;首先&#xff0c;你需要在父組件中導入你想要使用的子組件。這通常是通過ES6的import語法完成的。 注冊組件&#xff1a;接下來&#xff0c;你需要在父組件中注冊這個子組件。這可以通過components選項完成&…

JavaScript如何讓一個按鈕的點擊事件在完成之前禁用

在JavaScript中&#xff0c;要禁用一個按鈕的點擊事件直到某個操作完成&#xff0c;你可以將其點擊事件用匿名函數的方式書寫。 你可以將其在點擊函數內設置為null來禁用按鈕。 <button id"butto_n">點擊抽獎</button><script>butto_n.onclick bu…

大整數運算詳解升級版

目錄 大整數的存儲 大整數的四則運算 高精度加法 高精度減法 高精度與低精度的乘法 高精度與低精度的除法 大整數的存儲 對于大整數使用數組存儲&#xff0c;例如定義int型數組d[1000]&#xff0c;那么這個數組中的每一位就代表了存放的整數的每一位。如將整數235813存…

android requireActivity() 和 getActivity()使用問題

requireActivity() 和 getActivity() 都是從 Fragment 中獲取宿主 Activity 的方法,但它們有一些不同的行為和使用場景。 requireActivity() 拋出異常:如果 Fragment 沒有附加到任何 Activity,調用 requireActivity() 會拋出 IllegalStateException。安全性:通常在你確定 …

新品 | Forge? 1GigE IP67工業相機助力智能農業、食品和飲料行業

近日&#xff0c;51camera的合作伙伴Teledyne FLIR IIS推出Forge 1GigE IP67,它是Forge系列的最新工業相機&#xff0c;旨在在惡劣的工業環境中運行&#xff0c;同時確保高效的生產能力。Forge 1GigE IP67致力于為工廠自動化提供先進成像系統的最新產品。 Forge 1GigE IP67相機…

python-pytorch 實現seq2seq+luong general concat attention 完整代碼

接上一篇https://blog.csdn.net/m0_60688978/article/details/139046644 # def getAQ(): # ask[] # answer[] # with open("./data/flink.txt","r",encoding"utf-8") as f: # linesf.readlines() # for line in lin…

MyBatis多數據源配置與使用,基于ThreadLocal+AOP

導讀 MyBatis多數據源配置與使用其一其二1. 引依賴2. 配置文件3. 編寫測試代碼4. 自定義DynamicDataSource類5. DataSourceConfig配置類6. AOP與ThreadLocal結合7. 引入AOP依賴8. DataSourceContextHolder9. 自定義注解UseDB10. 創建切面類UseDBAspect11. 修改DynamicDataSourc…

jQuery里添加事件 (代碼)

直接上代碼 <!DOCTYPE html> <html><head></head><body><input type"text" placeholder"城市" id"city" /><input type"button" value"添加" id"btnAdd" /><ul id…

PTA 計算矩陣兩個對角線之和

計算一個nn矩陣兩個對角線之和。 輸入格式: 第一行輸入一個整數n(0<n≤10)&#xff0c;第二行至第n1行&#xff0c;每行輸入n個整數&#xff0c;每行第一個數前沒有空格&#xff0c;每行的每個數之間各有一個空格。 輸出格式: 兩條對角線元素和&#xff0c;輸出格式見樣例…

Android存儲系統成長記

用心堅持輸出易讀、有趣、有深度、高質量、體系化的技術文章 本文概要 您一定使用過Context的getFileStreamPath方法或者Environment的getExternalStoragePublicDirectory方法&#xff0c;甚至還有別的方法把數據存儲到文件中&#xff0c;這些都是存儲系統提供的服務&#x…