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