groovy对二维数组排序
时间: 2023-07-20 16:09:05 浏览: 51
在Groovy中,可以使用sort方法对二维数组进行排序。sort方法可以接收一个闭包参数,用于定义排序规则。下面是一个对二维数组按照第一列元素升序排序的示例代码:
```groovy
def array = [[3, 5], [1, 2], [4, 3], [2, 4]]
array.sort { a, b -> a[0] <=> b[0] }
println array
```
输出结果为:
```
[[1, 2], [2, 4], [3, 5], [4, 3]]
```
其中,`<=>` 符号表示比较两个值的大小,如果第一个值小于第二个值,则返回-1;如果第一个值等于第二个值,则返回0;如果第一个值大于第二个值,则返回1。在这个示例中,我们比较二维数组中每个子数组的第一个元素大小,根据大小返回-1、0或1,从而实现按照第一列元素升序排序的功能。
相关问题
groovy 反序列化数组
在 Groovy 中,你可以使用 `JsonSlurper` 类来反序列化 JSON 数据,包括数组。下面是一个示例,用于从 JSON 数据中反序列化一个字符串数组:
```
import groovy.json.JsonSlurper
def json = '["apple", "banana", "cherry"]'
def slurper = new JsonSlurper()
def myArray = slurper.parseText(json)
assert myArray instanceof List
assert myArray.size() == 3
assert myArray[0] == "apple"
assert myArray[1] == "banana"
assert myArray[2] == "cherry"
```
在上面的示例中,我们首先定义了一个包含字符串数组的 JSON 字符串。然后,我们创建了一个 `JsonSlurper` 对象,并使用其 `parseText` 方法将 JSON 字符串解析为 Groovy 中的对象。最后,我们检查了 `myArray` 对象是否是一个 `List` 类型的对象,并检查了数组中的元素是否正确。
如果 JSON 数据中包含的是对象数组,那么你可以将其反序列化为一个包含多个对象的列表,如下所示:
```
import groovy.json.JsonSlurper
def json = '[{"name": "apple", "price": 1.0}, {"name": "banana", "price": 2.0}, {"name": "cherry", "price": 3.0}]'
def slurper = new JsonSlurper()
def myList = slurper.parseText(json)
assert myList instanceof List
assert myList.size() == 3
assert myList[0].name == "apple"
assert myList[0].price == 1.0
assert myList[1].name == "banana"
assert myList[1].price == 2.0
assert myList[2].name == "cherry"
assert myList[2].price == 3.0
```
在上面的示例中,我们定义了一个包含对象数组的 JSON 字符串。我们使用 `JsonSlurper` 类的 `parseText` 方法将其反序列化为包含三个对象的列表。我们检查了 `myList` 对象是否是一个 `List` 类型的对象,并检查了每个对象的属性是否正确。
groovy遍历json数组
在 Groovy 中遍历 JSON 数组可以使用以下方法:
```groovy
import groovy.json.JsonSlurper
def json = '[{"name": "John", "age": 30}, {"name": "Jane", "age": 25}]'
def jsonArray = new JsonSlurper().parseText(json)
jsonArray.each { item ->
println("Name: ${item.name}")
println("Age: ${item.age}")
}
```
以上代码示例中,我们首先使用 `JsonSlurper` 类将 JSON 字符串解析为 Groovy 对象。然后使用 `each` 方法遍历数组中的每个元素,并对每个元素进行相应的操作。
在遍历过程中,可以通过 `item` 对象访问到 JSON 数组中的每个元素的属性。在示例中,我们打印了每个元素的名称和年龄。
希望对你有所帮助!如果还有其他问题,请继续提问。