初始化一个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 ...
随机推荐
- 小程序 AI/AR 能力
一.关于 VisionKit 1.定义 VisionKit 为小程序提供了开发 AR 功能的能力,包含了 AR 在内的视觉算法. 2.版本 提供了 V1 和 V2 两个版本,区别如下: V1平面接口, ...
- 连接FastDFS出现超时问题的解决办法
1.使用Java语言写的web项目,jeecg框架连接FastDFS,需要修改的信息如下: # WEB-INF/classes/fdfs_client.conf connect_timeout=300 ...
- centos7.5升级系统内核版本
1.yum update curl nss 2.yum install wget 3.rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.or ...
- Python抖音视频去水印,并打包成exe可执行文件
前言 抖音里面的视频保存之后,会发现全都带有水印,所以如何解决视频去除水印就很有必要,所以教程来了,本次教程不仅会教大家如何去除视频里的水印,并且教大家将程序制作成exe可执行文件,可以发给你的好友使 ...
- python之流程控制上-if、while
流程控制 编写程序,是将自己的逻辑思想记录下来,使得计算机能够执行的过程. 而流程控制,则是逻辑结构中十分重要的一环. 在程序中,基础的流程结构分为顺序结构.分支结构.顺序结构 顺序结构自不必多说,上 ...
- GTID主从
GTID主从 目录 GTID主从 GTID概念介绍 GTID工作原理 GTID主从配置 GTID概念介绍 GTID即全局事务ID (global transaction identifier), 其保 ...
- printf-库函数重定向、重载
重定向:这是针对标准C语言语法来讲,指的是我们可以重新声明库函数并定义库函数的执行体 重载:这是CPP引入的新特性,即根据函数不同参数个数或参数类型来对同一函数名进行不同定义 C和CPP对重定向处理机 ...
- 14.MongoDB系列之配置分片
1. 启动服务器 1.1 启动配置服务器 配置服务器是集群的大脑,保存着关于每个服务器包含哪些数据的所有元数据,因此,必须首先创建配置服务器. 由于资源限制,在同一机器上启动三个进程 # mkdir ...
- 驱动开发:内核枚举LoadImage映像回调
在笔者之前的文章<驱动开发:内核特征码搜索函数封装>中我们封装实现了特征码定位功能,本章将继续使用该功能,本次我们需要枚举内核LoadImage映像回调,在Win64环境下我们可以设置一个 ...
- [Err] 1052 - Column ‘roleId‘ in where clause is ambiguous
1.先看错误的sql语句: select a.authName from roles as r,authority as a,role_ah as ra where ra.roleId=r.roleI ...