文章目錄
- 前言
- 字符串
- 集合
- 1.兩個集合的差集
- 2.集合轉數組
- 2.1.集合轉基本數據類型數組
- 2.2.集合轉對象數組
- Map
- 1.合并Map
- 1.1.使用 + 操作符
- 1.2.使用 += 操作符
- 1.3.使用 putAll 方法
- 1.4.使用 merge 函數
前言
記錄一些kotlin開發中,日常使用的函數和方式之類的,不然有時候總是忘,還得去翻官方文檔或者API,必須集合轉Map的方式,我總是忘 。。。😭
會不定時進行記錄更新,文章也會越來越完善。
字符串
集合
1.兩個集合的差集
集合1和集合2,獲取集合1中有,但是集合2中沒有的
fun main() {val collection1 = listOf(1, 2, 3, 4, 5)val collection2 = listOf(3, 4, 5, 6, 7)// 使用 minus 操作符計算差集val difference = collection1 - collection2println("使用 minus 操作符計算的差集: $difference")
}
2.集合轉數組
在 Kotlin 中,可以將集合轉換為數組,根據集合元素類型的不同,轉換方式也有所不同。這里分別介紹將集合轉換為基本數據類型數組和對象數組的方法。
2.1.集合轉基本數據類型數組
對于基本數據類型(如 Int、Double 等)的集合,需要使用特定的方法進行轉換。Kotlin 提供了相應的轉換方法,如 toIntArray()、toDoubleArray()、toLongArray() 等。
集合轉 IntArray,使用 toIntArray() 方法將包含 Int 元素的集合轉換為 IntArray。
fun main() {// 創建一個整數集合val intList = listOf(1, 2, 3, 4, 5)// 將集合轉換為 IntArrayval intArray: IntArray = intList.toIntArray()
}
集合轉 DoubleArray,使用 toDoubleArray() 方法將包含 Double 元素的集合轉換為 DoubleArray。
fun main() {// 創建一個雙精度浮點數集合val doubleList = listOf(1.1, 2.2, 3.3, 4.4, 5.5)// 將集合轉換為 DoubleArrayval doubleArray: DoubleArray = doubleList.toDoubleArray()
}
2.2.集合轉對象數組
使用 toTypedArray() 方法可以將任意類型的集合轉換為對應的對象數組。
fun main() {// 創建一個字符串集合val stringList = listOf("apple", "banana", "cherry")// 將集合轉換為對象數組val stringArray: Array<String> = stringList.toTypedArray()
}
這里使用了String類型的數組,實際中可以是任何對象,例如你自己定義的UserDTO等對象。
Map
1.合并Map
在 Kotlin 里,合并兩個 Map 有多種方式。
1.1.使用 + 操作符
此操作符能合并兩個Map,若有重復鍵,后面 Map 的值會覆蓋前面的。結果是生成一個新的Map。
fun main() {// 兩個Map是不是可變的Map無所謂val map1 = mutableMapOf("a" to 1, "b" to 2)val map2 = mapOf("b" to 3, "c" to 4)val mergedMap = map1 + map2println(mergedMap)
}
使用 plus 函數和 + 操作符作用相同。
fun main() {val map1 = mapOf("a" to 1, "b" to 2)val map2 = mapOf("b" to 3, "c" to 4)val mergedMap = map1.plus(map2)println(mergedMap)
}
1.2.使用 += 操作符
在有可變 map 的場景下,我們可以使用已有的 map 來保存合并兩個 map 后的結果。
fun main() {val map1 = mutableMapOf("a" to 1, "b" to 2)val map2 = mapOf("b" to 3, "c" to 4)map1 += map2println(map1 )
}
1.3.使用 putAll 方法
putAll 方法會把第二個 Map 的鍵值對添加到第一個可變 Map 中,重復鍵的值會被覆蓋。要求第一個Map必須是可變Map,否則不能調用putAll方法。
fun main() {val mutableMap1 = mutableMapOf("a" to 1, "b" to 2)val map2 = mapOf("b" to 3, "c" to 4)mutableMap1.putAll(map2)println(mutableMap1)
}
1.4.使用 merge 函數
若有重復鍵,想自定義處理方式,可使用 merge 函數。
例如,合并兩個Map的時候,重復鍵的值進行相加。
fun main() {// 這里的map1需要是可變的val map1 = mutableMapOf("a" to 1, "b" to 2)val map2 = mapOf("b" to 3, "c" to 4)// 循環map2, 從map1中獲取同key的值, 然后加起來, 放入map1中map2.forEach { (key, value) ->// oldVal 和 newVal 分別對應于 map1 和 map2 中的值map1.merge(key, value) { oldValue, newValue -> oldValue + newValue }}// {a=1, b=5, c=4}println(map1)
}