Я хочу хранить пары ключ-значение, такие как < 4.1, 29..35 >
которые я могу сделать с помощью HashMap<Double, Range<Int>>
:
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?
IntRange
этого используйте 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
Для получения дополнительной информации: Диапазоны
Range
– это класс в Android SDK, это связано с API 21. IntRange
вы можете использовать IntRange
предоставляемый стандартной библиотекой Kotlin.
Здесь вы можете найти примеры использования для диапазонов Kotlin.
Вот как выглядит их основное использование:
val range = 1..10 // creation println(range.first) // 1 println(range.last) // 10 println(5 in range) // true