之前总结了groovy中list的基本应用,当然我们也可以通过闭包,进行自定义的扩展。讲到闭包,这个很犀利,我对它理解也不深刻,只是明白它是对象形式存在,并且可以存在任何地方,类似于java中内部类,但又比内部类灵活。
回到正题,下面通过简单闭包来点初步体验。
之前总结到,通过list.sort()方法可以把一个集合通过升序排列。现在我需求把这个集合降序排列。当然,你可以先升序,在逆置集合。下面我们尝试下闭包的方法。
def list=[1,5,3,5,2,8,2,213] println "升序:${list.sort()}" list.sort{ //通过闭包逆序,'<=>'符号相当于b.compareTo(a) a,b-> b<=>a } println "降序:${list}"
结果: 升序:[1, 2, 2, 3, 5, 5, 8, 213]
降序:[213, 8, 5, 5, 3, 2, 2, 1]
需求2:自定义集合乱序方法
def list5=[1,43,1,3,68,3,5,7,5] list5.sort{ //打乱数组顺序 Math.random() } println "乱序:${list5}"
结果: 乱序:[43, 1, 1, 3, 3, 7, 68, 5, 5]
当然,我们还可以对list做更多的操作,任何你想的。