【问题标题】:Sort by Pattern按图案排序
【发布时间】:2021-03-22 16:34:05
【问题描述】:

我无法在 Kotlin 中按特定模式(顺序)进行排序。假设我有一个字符串列表 [黄色、红色、绿色、蓝色]。我想按特定模式 [Red, Green, Blue, Yellow] 对它们进行排序。 (请记住,列表有时会有所不同)[Green, Blue, Yellow] 或 [Yellow, Red, Blue]。有没有办法以一种很好的方式实现它?

亲切的问候。

【问题讨论】:

  • 排序标准是什么?从您提到的示例中,无法确定该排序标准。是按字母排序吗?

标签: java android sorting kotlin


【解决方案1】:

如果我理解正确,颜色的顺序必须与给定的图案相同。 然后,您可以从模式中删除不在输入列表中的元素。

val pattern = listOf("Red", "Green", "Blue", "Yellow")

val input1 = listOf("Green", "Blue", "Yellow").toSet()
val input2 = listOf("Yellow", "Red", "Blue").toSet()

val sorted1 = pattern.filter { input1.contains(it) }
val sorted2 = pattern.filter { input2.contains(it) }

println(sorted1) // [Green, Blue, Yellow]
println(sorted2) // [Red, Blue, Yellow]

如果您的输入可以包含重复的颜色,这将不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多