0
我試圖弄清楚如何構建自定義Comparator
。我發現了類似的question,但我仍然卡住了。我想文件使用一些ArrayList
S,排序,例如:Groovy自定義比較器
我的文件:
def files = ['author/foo.pkb', 'author/foo.pks',
'version/test1.pks', 'version/test1.pkb', 'Somethink/foo.sql']
我的訂單列表:
def my_order = ['version', 'author', 'somethink'] // 1 value
def my_extension_order ['.pks', '.pkb']
而且我想建立somethink這樣的:
def my_index = { x ->
return my_order.findIndexOf { x.contains(it) }
}
def my_extension_order = { y ->
return my_extension_order.findIndexOf { y.contains(it) }
}
files.sort { a, b -> my_index(a) <=> my_index(b) ?: a <=> b && // sort files and extension
在輸出中,我想通過my_order
排序文件,包括my_extension_order
。它應該看起來像:
def = ['version/test1.pks', 'version/test1.pkb', 'author/foo.pks', 'author/foo.pkb',
'Somethink/foo.sql']
在總結file.sort
我想2個ArrayList
是我的文件進行排序,得到一個一致的輸出。那麼如何構建一個比較器來做到這一點?