初始化一个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将数据批量添加进去,没什么特别的。
初始化一个ArrayList的多种方式的更多相关文章
- C++ //拷贝构造函数调用时机//1.使用一个已经创建完毕的对象来初始化一个新对象 //2.值传递的方式给函数参数传值 //3.值方式返回局部对象
1 //拷贝构造函数调用时机 2 3 4 #include <iostream> 5 using namespace std; 6 7 //1.使用一个已经创建完毕的对象来初始化一个新对象 ...
- Spring学习总结(一)——Spring实现IoC的多种方式
控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种说法.没有IoC的程序中我们使用面向对象编程对象的创 ...
- Spring实现IoC的多种方式
目录 一.使用XML配置的方式实现IOC 二.使用Spring注解配置IOC 三.自动装配 四.零配置实现IOC 五.示例下载 控制反转IoC(Inversion of Control),是一种设计思 ...
- Spring实现Ioc的多种方式--控制反转、依赖注入、xml配置的方式实现IoC、对象作用域
Spring实现Ioc的多种方式 一.IoC基础 1.1.概念: 1.IoC 控制反转(Inversion of Control) IoC是一种设计思想. 2.DI 依赖注入 依赖注入是实现IoC的一 ...
- (转)Spring实现IoC的多种方式
原文地址:http://www.cnblogs.com/best/p/5727935.html 目录 一.使用XML配置的方式实现IOC 二.使用Spring注解配置IOC 三.自动装配 四.零配置实 ...
- springboot整合netty的多种方式
netty作为一个高性能的io框架,是非好用的一个技术框架, Netty 是一个基于NIO的客户.服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户. ...
- js 创建对象的多种方式
参考: javascript 高级程序设计第三版 工厂模式 12345678910 function (name) { var obj = new Object() obj.name = name o ...
- 基础2:js创建对象的多种方式
js创建对象的多种方式 1. 工厂模式 function createPerson(name) { var o = new Object() 0.name = name return o } var ...
- idea打包jar的多种方式
这里总结出用IDEA打包jar包的多种方式,以后的项目打包Jar包可以参考如下形式: 用IDEA自带的打包形式 用Maven插件maven-shade-plugin打包 用Maven插件maven-a ...
- Java中测试异常的多种方式
使用JUnit来测试Java代码中的异常有很多种方式,你知道几种? 给定这样一个class. Person.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
随机推荐
- Solutions:Elastic SIEM - 适用于家庭和企业的安全防护 ( 五)
- Linux Hardening Guide
文章转载自:https://madaidans-insecurities.github.io/guides/linux-hardening.html 1. Choosing the right Lin ...
- 在CentOS 8服务器上搭建FastDFS环境
什么是FastDFS? 这里,我就摘录下百度百科上对于FastDFS的描述. FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下 ...
- 【前端必会】使用indexedDB,降低环境搭建成本
背景 学习前端新框架.新技术.如果需要做一些数据库的操作来增加demo的体验(CURD流程可以让演示的体验根据丝滑) 最开始的时候一个演示程序我们会调用后台,这样其实有一点弊端,就是增加了开发和维护成 ...
- [题解] Codeforces 1720 E Misha and Paintings 结论
题目 算是诈骗题? 令一开始就存在的颜色数为cnt.k>=cnt的情况,显然每次找一个出现不止一次的颜色,然后把这个颜色的恰好一个方块替换成一种没有出现过的颜色就可以了,\(k-cnt\)次解决 ...
- Filter 筛选器(三)之 自定义一个启动事务的 TransactionScopeFilter
如果一个方法内有多个写入操作,比如 写入A表,然后用A表的自增id 去写入B表,假如A表写入成功,但B表因为某种原因写入失败!(这就导致A表写入了脏数据) 这时候 我们可以自定义 一个Filter 进 ...
- Azure DevOps Pipelines部署.Net Core 应用到Kubernetes
一. 先决条件 1.Azure Repos Git/Git和项目上传 把本地的Net Core项目上传至Azure Repos Git/Git 2.Docker Registry Service ...
- 齐博x2是什么?
齐博x2是什么? 齐博x2是齐博x1的延申版本. 对小程序全方位加强
- Educational Codeforces Round 122 (Rated for Div. 2)/codeforces1633
CodeForces1633 Div. 7 解析: 题目大意 给定 \(t\) 组数据.每组数据给定一个数 \(n\)(\(10\le n\le 999\)). 每次操作可以修改 \(n\) 任意一位 ...
- SpringBoot Starter缘起
SpringBoot通过SpringBoot Starter零配置自动加载第三方模块,只需要引入模块的jar包不需要任何配置就可以启用模块,遵循约定大于配置的思想. 那么如何编写一个SpringBoo ...