初始化创建 list
创建list
Collections.emptyList(); 创建一个list
Arrays.asList<>(可以有参数);
Lists.newArrayList<>(可以有参数);
常规方式
List<String> languages = new ArrayList<>();
languages.add("Java");
languages.add("PHP");
languages.add("Python");
System.out.println(languages);
Arrays 工具类
//这里是不可变的 List, 即不能添加、删除等操作
List<String> jdks = Arrays.asList("JDK6", "JDK8", "JDK10");
System.out.println(jdks);
//如果要可变,那就使用 ArrayList 再包装一下
List<String> numbers = new ArrayList<>(Arrays.asList("1", "2", "3"));
numbers.add("4");
System.out.println(numbers);
源码
public static <T> List<T> asList(T... a) {return new ArrayList<>(a);
}//静态内部类
private static class ArrayList<E> extends AbstractList<E> implements RandomAccess, java.io.Serializable {private static final long serialVersionUID = -2764017481108945198L;private final E[] a;ArrayList(E[] array) {a = Objects.requireNonNull(array);}...
}
Collections 工具类
//添加的是不可变的、复制某个元素N遍的工具类
List<String> apples = Collections.nCopies(3, "apple");
System.out.println(apples); //[apple, apple, apple]
//如果要可变,使用 ArrayList 包装一遍
List<String> dogs = new ArrayList<>(Collections.nCopies(3, "dog"));
dogs.add("dog");
System.out.println(dogs);
源码
public static <T> List<T> nCopies(int n, T o) {if (n < 0)throw new IllegalArgumentException("List length = " + n);return new CopiesList<>(n, o);}
//静态内部类
private static class CopiesList<E> extends AbstractList<E> implements RandomAccess, Serializable {private static final long serialVersionUID = 2739099268398711800L;final int n;final E element;CopiesList(int n, E e) {assert n >= 0;this.n = n;element = e;}...
}
初始化单个对象的 List
,这种方式也是不可变的,集合内只能有一个元素,这种也用得很少
List<String> cat = Collections.singletonList("cat");
System.out.println(cat);
创建空 List
,没有默认容量,节省空间
List<String> cat = Collections.emptyList();
匿名内部类
看似高级,实现也没什么卵用
List<String> names = new ArrayList<>() {{add("Tom");add("Sally");add("John");
}};
System.out.println(names);
JDK8 Stream
List<String> colors = Stream.of("blue", "red", "yellow").collect(Collectors.toList());
System.out.println(colors);
JDK 9 List.of
//不可变的
List<String> cups = List.of("A", "B", "C");
System.out.println(cups);
com.google.common.collect.Lists
//初始化后是不可变的,内部是final
Lists.newArrayList(...)
问题
当使用 Arrays.asList()
时,如果里面没有放元素
,在 idea 上方控制条 -> git -> commit
时,会有 review 提示
Warning:(195, 101) Call to 'asList()' to create an empty List
如果后期不打算在里面放东西时,或者目前不放,之后再改,可以 改为 Collections.emptyList()
,就不会有 review 提示了
初始化创建 list相关推荐
- hdfs namenode -format 初始化创建不了目录的问题
Hadoop格式化namenode错误:java.io.IOException: Cannot create directory hdfs namenode -format 初始化创建不了目录的问题, ...
- 初始化创建画布_使用HTML5,画布和开放数据创建全球降水(雨)可视化
初始化创建画布 我目前正在为Three.js编写下一本书,其中一章涉及可视化开放数据. 在寻找可以使用的数据时,我遇到了来自NOAA的一组数据. 通过此站点,您可以以网格格式下载一组全世界的每月降水报 ...
- HbuliderX + vue项目(初始化创建) - 准备篇
环境搭建准备 · 命令记录: 安装npm 安装完成与否检测:npm -v(出现版本号,表示安装成功) 由于网络原因,建议安装为cnpm(淘宝国内镜像) npm install -g cnpm --re ...
- 高德地图开发之地图配置及vue上初始化创建地图
开门见山地说,现如今地图相关的开发业务在工作中越来越常见,目前市面上主流的地图开发还是以百度和高德为主,今天就来讲一下高德地图的配置和在vue上的初始化创建,帮助大家更好更快的了解高德地图开发相关的 ...
- Vue初始化创建项目
Vue初始化创建项目 1.创建项目: 2.打开项目: 3.删除项目中的默认添加文件 4.添加自己的东西 4.1.初始化HTML中的代码: 4.2.使用视口缩放+rem的方式适配移动端. 4.3.运行查 ...
- MATLAB中怎样初始化(创建)二维、三维、四维以及多维矩阵,各维度的索引顺序是怎样的?
目录 1 在MATLAB中初始化二维矩阵 2 在MATLAB中初始化三维矩阵 3 在MATLAB中初始化四维矩阵 4 在MATLAB中初始化N维矩阵 1 在MATLAB中初始化二维矩阵 在MATLAB ...
- mongo在哪创建管理员_MongoDB初始化创建管理员账户登录
1.查看mongodb服务是否开启: ps -ef | grep mongod 2.管理员角色必须在启用--auth认证参数之前创建,否则会没有操作权限.如果之前已经创建过用户,请先删除. kill掉 ...
- python dict初始化大小_在Python中初始化/创建/填充Dict的Dict
我必须在为我的研究编写代码时经常这样做.您将希望使用defaultdict包,因为它允许您添加键:值对在任何级别上,通过简单的分配.回答完你的问题我会给你看的.这是直接来源于我的一个程序.关注最后4行 ...
- Hibernate初始化创建SessionFactory,Session,关闭SessonFactory,session
1.hibernate.cfg.xml 1 <?xml version='1.0' encoding='UTF-8'?> 2 <!DOCTYPE hibernate-configur ...
最新文章
- Spring整合了CXF的一个applicationContext.xml的配置文件
- 蓝桥练习-算法训练 最大最小公倍数
- The configured Task Off-Heap Memory 0 bytes is less than the least required Python worker Memory 79
- POJ 1228	 Grandpa's Estate --深入理解凸包
- Java REST JAX-RS 2.0 –如何处理日期,时间和时间戳记数据类型
- sublime的一些快捷键
- 如何用python完成基本统计信息计算_如何用python计算基本统计值?
- 【C#小知识】C#中一些易混淆概念总结(八)---------解析接口
- 【翻译】YARN Architecture
- CodeGym—Java自学神器
- 计算机上如何设置访问密码忘了怎么办,电脑设置的密码忘记了怎么办
- 使用Java和FFempeg批量转码B站缓存下来的列表视频,成MP4格式
- +中文词频统计及词云制作9-25
- 利用同义词简化SQL Server 2005开发
- CentOS Linux虚拟机内存耗费太大
- NGINX配置以及优化
- Mac basictex缺少xxx.sty文件
- python自动化 2 对象定位(1)
- 云计算究竟有哪些优势
- INSERT INTO IF NOT EXISTS问题