按模式排序

34gzjxbg  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(289)

我无法在kotlin中实现按特定模式(顺序)排序。假设我有一个字符串列表[黄,红,绿,蓝]。我想按特定的模式[红,绿,蓝,黄]对它们进行分类(请记住,列表有时是不同的[绿,蓝,黄]或[黄,红,蓝]。有没有一种方法可以很好地实现它?
谨致问候。

u59ebvdq

u59ebvdq1#

如果我没听错的话,颜色的顺序必须和给定的图案一样。然后您可以从模式中删除不在输入列表中的元素。

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]

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

相关问题