2017-07-04 43 views
2

我想存儲像< 4.1, 29..35 >鍵值對,我可以做一個HashMap<Double, Range<Int>>範圍在科特林低於API 21

val womanMap: HashMap<Double, Range<Int>> = hashMapOf() 

@RequiresApi(Build.VERSION_CODES.LOLLIPOP) 
fun createMap() { 
    //This both requires API 21 
    val range = Range(29,35) 
    womanMap[4.6] = Range.create(29,35) 
} 

我怎樣才能做到這一點低於API 21級?

回答

4

使用IntRange代替:

val womanMap: HashMap<Double, IntRange> = hashMapOf() 

    @RequiresApi(Build.VERSION_CODES.LOLLIPOP) 
    fun createMap() { 
     val range = 29..35 
     womanMap[4.6] = 29..35 
    } 

注意29..35關閉間隔:

for (a in 29..35) print("$a ") // >>> 29 30 31 32 33 34 35 

創建範圍不包括其尾部元件使用29 until 35

for (a in 29 until 35) print("$a ") // >>> 29 30 31 32 33 34 

欲瞭解更多信息:Ranges

5

Range是Android SDK中的一個類,它與API 21綁定在一起。您可以使用由Kotlin標準庫提供的IntRange

你可以找到Kotlin範圍here的使用示例。

這裏是他們的基本用法是什麼樣子:

val range = 1..10 // creation 
println(range.first) // 1 
println(range.last) // 10 
println(5 in range) // true 
+1

謝謝,非常感謝您的幫助! – TapanHP