初始化ArrayList的方式

简介: 初始化ArrayList的方式

本片文章用于归纳java中初始化一个ArrayList的几种方式


add方法添加

最基础的方式就是我们在new一个ArrayList之后使用add方法添加元素

/**
     * 第一种方式,通过add方法
     * @return
     */
public List<String> initOne(){
        List<String> list = new ArrayList<>();
        list.add("1");
        list.add("2");
return list;
    }

使用Arrays.asList()方法添加

/**
     * 第二种方式,通过Arrays.asList方法
     * @return
     */
public List<String> initTwo(){
List<String> list = Arrays.asList("1", "2", "3");
return list;
    }

java的java.util.Arrays工具类中为我们提供了一个asList方法用于让我们方便的初始化一个简易的集合对象,该方法在jdk1.2版本加入到java当中。不过要注意的是,这个方法返回的ArrayList,并不是java.util.ArrayList,而是Arrays里面独立实现的一个内部类,继承了AbstractAbstractList.完整包名为java.util.Arrays.ArrayList,该类并不支持remove以及add方法。我们在使用的时候注意这一点

使用双括号初始化

/**
     * 第三种方式,双括号初始化
     * @return
     */
public List<String> initThree(){
List<String> list = new ArrayList<String>() {{
add("1");
add("2");
        }};
return list;
    }

这种方式本质上是创建了一个继承了ArrayList的匿名内部类,并且在这个内部类中使用代码块对这个ArrayList进行了初始化。要注意的时候使用这种方式初始化的ArrayList,无法被序列化。

使用Stream进行初始化

/**
     * 第四种方式使用Stream初始化
     * @return
     */
public List<String> initFour(){
List<String> collect = Stream.of("1", "2", "3").collect(Collectors.toList());
return collect;
    }

这种使用的jdk1.8之后的stream流处理来生成一个List,如果你想要在生成list的时候顺便对其进行一些处理,那么推荐使用这种方式来生成,但是如果只是单纯的初始化,那么不推荐,这种方式相对于基础的初始化方式,有去做了一个流的初始工作,所以单纯的初始化时效率会低上一些。

使用Lists工具类来初始化

/**
     * 使用Lists工具类来初始化
     * @return
     */
public List<String> initFive(){
ArrayList<String> strings = Lists.newArrayList("1", "2", "3");
return strings;
    }

这个Lists时google封装的一个工具类。这种方式其实本质上还是声明一个ArrayList并用Collections将数据批量添加进去,没什么特别的。

目录
相关文章
|
Android开发
【错误记录】Android Studio 中 build.gradle 配置 buildFeatures prefab 错误处理 ( AS 4.1 以上开发环境 | Gradle及插件版本 )
【错误记录】Android Studio 中 build.gradle 配置 buildFeatures prefab 错误处理 ( AS 4.1 以上开发环境 | Gradle及插件版本 )
2502 1
【错误记录】Android Studio 中 build.gradle 配置 buildFeatures prefab 错误处理 ( AS 4.1 以上开发环境 | Gradle及插件版本 )
|
安全 关系型数据库 MySQL
|
8月前
|
消息中间件 自然语言处理 运维
微服务不是银弹!这4个设计原则让你少踩90%的坑
本文深入解析微服务架构与领域驱动设计(DDD)的核心理念与实践方法,帮助开发者正确拆分服务边界,避免常见误区,提升系统可维护性与扩展性,适用于复杂业务场景下的高效开发与团队协作。
862 1
|
存储 Java 编译器
如何在 Java 中初始化对象 Arraylist?
【8月更文挑战第23天】
714 0
|
消息中间件 RocketMQ
如何保证RocketMQ消息有序?
如何保证RocketMQ消息有序?
|
程序员 开发者
IDEA插件-Grep Console彩色控制台
IDEA插件-Grep Console是一款用于增强IDEA开发环境的工具,它可以帮助开发者更好地搜索和过滤控制台输出。
2808 0
IDEA插件-Grep Console彩色控制台
|
SQL 分布式计算 大数据
一张图,详解大数据技术架构
一张图,详解大数据技术架构
|
前端开发 JavaScript Java
阿里云OSS临时凭证前后端配合上传文件
阿里云OSS临时凭证前后端配合上传文件
711 0