以下是一个例子:
Observable.fromIterable(listOf("4444", "22", "333", "1", "55555"))
.groupBy { it.hashCode() }
.subscribe { group ->
group.toList().subscribe { list -> println("${group.key} $list") }
}
输出:
1600 [22]
49 [1]
50643 [333]
50578165 [55555]
1600768 [4444]
如何按升序/降序排序键或使用自定义排序比较器?
答案 0 :(得分:1)
其中一个解决方案是使用sorted
函数和自定义Comparator
:
Observable.fromIterable(listOf("4444", "22", "333", "1", "55555"))
.groupBy { it.hashCode() }
.sorted { o1, o2 ->
o1.key?.minus(o2.key ?: 0) ?: 0
}
.subscribe { group ->
group.toList().subscribe { list -> println("${group.key} $list") }
}
输出:
49 [1]
1600 [22]
50643 [333]
1600768 [4444]
50578165 [55555]