我真的很喜欢Groovy编程语言。我喜欢它是因为我喜欢Java,尽管Java有时会让人感到笨拙。因为我太爱Java了,其他运行在JVM上的语言对我没有吸引力。例如,Kotlin、Scala和Clojure等语言给人的感觉与Java不同,因为它们对什么是好的编程语言有不同的理解。Groovy不像他们,在我看来,Groovy是一个完美的选择,特别是对于那些喜欢Java,但需要一种更灵活、紧凑、有时更直接的语言的程序员。列表数据结构就是一个很好的例子。它可以包含一个无序列表。列表中的元素可以是数字、字符串或对象。程序员可以通过某种方式高效地遍历这些元素,尤其是对于那些编写和维护脚本的人来说,“效率”的关键是要有简洁明了的表达方式,不要有很多模糊代码意图的“仪式”。安装Java和GroovyGroovy是基于Java的,所以需要同时安装一个Java。您的Linux发行版的存储库中可能有最新的Java好版本。或者,您可以按照这些说明安装Groovy。对于Linux用户,SDKMan是一个很好的选择,您可以使用它来获得多个Java和Groovy版本,以及许多其他相关工具。对于本文,我使用的SDK发行版是:Java:OpenJDK11,版本11.0.12-openGroovy:版本3.0.8言归正传,Java中有很多方法可以实例化和初始化一个列表,从它的开始原始介绍曾经有一段时间(我认为是在Java1.5左右,但请不要引用我的话)。在这些方法中,有两个有趣的方法涉及类java.util.Arrays和java.util.List。使用java.util.Arrays类java.util.Arrays类定义了一个asList()静态方法,可用于创建基于数组的列表,因此其大小是不可变的,尽管其中的元素是可以修改的。用法如下:vara1=Arrays.asList(1,2,3,4,5,6,7,8,9,10);//可变元素的不可变列表System.out.println("a1="+a1);System.out.println("a1isaninstanceof"+a1.getClass());//输出是//a1=[1,2,3,4,5,6,7,8,9,10]//a1是类java.util.Arrays$ArrayLista1.set(0,0)的实例;//成功System.out.println("a1="+a1);//输出是//a1=[0,2,3,4,5,6,7,8,9,10]a1.add(11);//生成失败//线程“main”中的异常java.lang.UnsupportedOperationExceptionSystem.out。println("a1="+a1);//notreachedusingthejava.util.List类java.util.List类定义了一个静态方法of(),可用于创建一个不可变列表,其元素是可变的,具体取决于它们本身是否支持修改。用法如下:vara2=List.of(1,2,3,4,5,6,7,8,9,10);System.out.println("a2="+a2);System.out.println("a2isaninstanceof"+a2.getClass());//输出为//a2=[1,2,3,4,5,6,7,8,9,10]//a2是类java.util.ImmutableCollections$ListNa2.set(0,0)的实例;//产生失败//线程“main”中的异常java.lang.UnsupportedOperationExceptionSystem.out.println("a2="+a2);//未达到da2.add(11);//如果以上两行被注释掉,也会因为同样的原因而失败outSystem.out.println("a2="+a2);//未达到所以,我可以使用Arrays.asList(),也可以使用List.of()方法,如果我想要的是一个大小不能改变且不关心元素是否存在的列表可变的。如果我想初始化一个可变列表,我更喜欢将不可变列表作为参数传递给列表构造函数,如下所示:vara1=newArrayList
