List有许多方法用来访问list中元素,遍历列表和接收结果。
查询方法包括查询list中元素数量的count方法,min和max方法用来查询list中的最小元素和最大元素,find方法用来查找list第一个符合闭包要求的元素,every和any方法用来确定list中的每一个元素(或者任何一个元素)是否符合闭包的要求。
遍历像通常一样完美,使用each方法进行正向遍历,并且使用eachReverse方法进行 反向遍历(译者注:在groovy1.6中并没有发现eachReverse方法,但存在reverseEach 方法)。
这些方法是简单优雅的,join方法十分简单:这个方法将所有元素通过给定的字符串 进行连接,然后将结果作为字符串返回,inject方法来自Smalltalk,这个方法使用闭包注入一个新的函数,这个函数用来对一个中间结果和遍历的当前元素进行操作,inject方法的第一个参数是中间结果的初始值,在列表4.9中,使用这个方法累加所有元素,后面对所有的元素结果进行相乘。
如果不熟悉这个概念,那么理解和使用inject方法就稍微有点困难,注意,这不完全是遍历的例子,还用来存储中间计算结果,好处是在累加结果的外面不需要引入额外的变量,并且没有超出闭包的范围。
GDK为list提供了两个更加便利的方法:asImmutable和asSynchronized,这两个方法使用Collections.unmodifiableList和Collections.synchronizedList方法来保护list被无意中的修改和并发访问,更详细的信息参考javadoc的相关主题。