Array<String>中按照字符串转为整数的大小排序,使用kotlin
时间: 2024-02-21 16:57:46 浏览: 138
同样可以使用Kotlin中的sortedWith方法和自定义比较器来实现按照字符串转为整数的大小排序。具体代码如下:
```
fun main() {
val arr = arrayOf("10", "2", "31", "45", "6", "7", "8", "9")
val sortedArr = arr.sortedWith(Comparator { s1, s2 ->
val i1 = s1.toInt()
val i2 = s2.toInt()
i1 - i2
})
println(sortedArr.contentToString())
}
```
输出结果为:[2, 6, 7, 8, 9, 10, 31, 45]
相关问题
在kotlin中,array和Intarray有什么区别
Kotlin中的Array和IntArray都是数组类型,但是它们有一些区别。
Array是一个泛型类型,可以存储任意类型的元素,包括可空类型。它的声明方式为:
```kotlin
var array: Array<T> = arrayOf()
```
其中,T表示元素类型。例如,可以声明一个字符串数组:
```kotlin
var strArray: Array<String> = arrayOf("Hello", "World")
```
IntArray是一个专门用于存储整数的数组类型。它的声明方式为:
```kotlin
var intArray: IntArray = intArrayOf()
```
其中,Int表示元素类型。例如,可以声明一个整数数组:
```kotlin
var numbers: IntArray = intArrayOf(1, 2, 3, 4, 5)
```
Int和Array有一个重要的区别,就是在内存中存储数据的方式不同。IntArray是一个原始类型数组,它直接存储整数的二进制表示。而Array是一个对象数组,它存储的是对象的引用。这意味着,IntArray的存储效率更高,但是只能存储整数,而Array可以存储任意类型的对象。
另外需要注意的一点是,IntArray和Array之间不能直接进行赋值操作,因为它们是不同类型的数组,需要进行类型转换。
在kotlin中如何创建一个空数组
在Kotlin中创建一个空数组,你可以使用`Array`、`List`或者其他泛型集合的初始化构造函数,它们默认就是空的。以下是几种常见情况下的例子:
1. **创建一个空的整数数组**:
```kotlin
valIntArray = IntArray(0)
```
2. **创建一个空的字符串数组**:
```kotlin
val strArray = arrayOf<String>()
```
3. **使用listOf创建空列表**(类似于Java的ArrayList):
```kotlin
val list = listOf<Int>()
```
4. **创建一个空的动态类型数组**(如果需要在运行时确定元素类型):
```kotlin
val dynamicArray = Array<out Any>(0) { null }
```
5. 对于泛型集合,如`MutableList`或`DelegatingList`,可以这样做:
```kotlin
val MutableList<Int> emptyMutableList = mutableListOf()
val DelegatingList<Int> emptyDelegateList = object : DelegatingList<Int>() {}
```
阅读全文