首页 > 编程知识 正文

java类的初始化,list初始化赋值

时间:2023-05-05 12:02:42 阅读:17552 作者:1761

从:构建了用Java初始化List的五种方法1.list后,使用List.add将liststringstringstringlist=new linked list (; stringlist.add('a ); stringlist.add('b ); stringlist.add('c '; 这是最常见的做法,使用起来不太方便。

{{}}方括号语法liststringstringlist=newlinkedliststring { } {添加} ' a ' }; add(b ); add(c ); }; 这种方式比较方便了。

外部{}定义了链接列表的匿名内部类。 内层的{}定义了实例初始化代码块。 此代码块在初始化内部类时执行。 因此,这里相当于定义匿名内部类,并使用add添加和初始化元素。

这种方式有几个缺点:

使用匿名内部类会有效率的损失。 当然,在大多数情况下,这种效率是可以接受的。 静态内部类保存对存在的外部类的引用。 如果需要将List放回其他位置使用,可能会导致内存泄漏。 3 .使用arrays.aslistliststringstringlist=arrays.as list (' a '、' b '、' c ' ); 该方式使用了java.util.Arrays的静态方法。 写法比以往的两个更简洁,也没有构建匿名内部类的效率问题。

但是,需要注意一些:

Arrays.asList返回Arrays的静态内部类。 静态内部类没有对存在的外部类的引用。 此内部类继承自AbstractList,实现RandomAccess,内部使用数组来存储元素。 但是,不支持添加或删除元素。 对此需要注意。 如果只是使用Arrays.asList初始化常量,这就没问题了。

请注意,如果Arrays.asList参数是基本类型的数组,则返回值可能与预期值不同。 int [ ] intarray=new int [ ] { 1,2,3 }; integer [ ] integer array=new integer [ ] { 1,2,3 }; listint [ ] int ArrayList=arrays.as list (intarray ); listintegerintegerlist=arrays.as list (integer array ); listintegerintegerlist2=arrays.as list (1,2,3 ); 其中arrays.aslist(intarray )的返回值是Listint[]而不是ListInteger。 这不是问题,但使用时需要注意。 如果在Java中尽量使用List和Integer,则如果尽量不使用int等基本类型和[]等比较基本的数据结构,就可以避免。

虽然本文介绍了初始化列表,但是这里的{}方括号语法也可以用于许多其他类型,如Map初始化。 相比之下,Arrays.asList只能用于初始化列表类型。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。