2017-07-04 2 views
2

Je veux stocker des paires clé-valeur comme < 4.1, 29..35 > que je peux faire avec un HashMap<Double, Range<Int>>:plages dans Kotlin ci-dessous 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) 
} 

Comment puis-je faire en dessous du niveau de l'API 21?

Répondre

4

Utilisation IntRange à la place:

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

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

Notez que 29..35 est un fermé intervalle:

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

Pour créer un gamme qui fait comprennent pas son élément l'utilisation finale 29 until 35:

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

Pour plus d'informations: Ranges

5

Range est une classe dans le SDK Android, cela est lié à API 21. Vous pouvez utiliser IntRange fourni par la bibliothèque standard Kotlin à la place cependant.

Vous trouverez des exemples d'utilisation pour les plages Kotlin here.

Voici ce que leur utilisation de base ressemble à:

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

Merci, vraiment apprécier votre aide !! – TapanHP