我有一个 JSONArray 中的静态值列表。这是我的示例数组:
JSONArray json = new JSONArray()
json = ["B", "E", "C", "Z", "A", "X", "F", "H"]
我需要以自定义方式对这个 json 数组进行排序。我需要先放“E”,然后放“F”,然后按字母顺序对其余部分进行排序。
我希望我的最终结果是这样的:
json = ["E", "F", "A", "B", "C", "H", X", "Z"]
Groovy 具有基本的排序功能,我可以使用以下方法按字母顺序或反向排序:
json.sort()
或者
json.reverse()
我正在寻找一种简单的方法来进行自定义排序。
最佳答案
在我的 5 分钟实验中,我使用了权重:
def json = ["B", "E", "C", "Z", "A", "X", "F", "H"]
def weights = [ E:10, F:9 ]
json.sort{
it.charAt( 0 ) - ( weights[ it ] ?: 0 )
}
assert '[E, F, A, B, C, H, X, Z]' == json.toString()
你可能想要包括一些错误检查
关于arrays - 自定义排序 Groovy JSONArray - 首先自定义值,然后按字母顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32788857/