2017-07-04 6 views
2

I Schlüssel-Wert-Paare wie < 4.1, 29..35 > speichern möchten, die ich mit einem HashMap<Double, Range<Int>> tun können:Ranges in Kotlin unter 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) 
} 

Wie kann ich dies tun unter API-Level 21?

Antwort

4

Verwenden IntRange statt:

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

zu erstellen:

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

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

Beachten Sie, dass 29..35 ein Intervall geschlossen ist Reichweite, die tut nicht ihr Ende Element Verwendung schließen 29 until 35:

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

Für weitere Informationen: Ranges

5

Range ist eine Klasse im Android SDK, diese ist an API 21 gebunden. Sie könnten aber stattdessen IntRange von der Kotlin-Standardbibliothek verwenden.

Sie finden Anwendungsbeispiele für Kotlin-Bereiche here.

Hier ist, was ihre grundlegende Verwendung wie folgt aussieht:

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

Danke, schätzen wirklich Ihre Hilfe !! – TapanHP

Verwandte Themen