Java中将 int[] 数组 转换为 List(ArrayList)
前言
说起数组转换成 ArrayList,很多同学第一反应就是遍历数组,将元素逐个添加到 ArrayList 中,但是这个看着就lower,一般不会这么答。
所以马上就会想到Arrays工具类的 asList 方法,如果你这么答,那么恭喜你,答错入坑。
为什么不能用 Arrays 的 asList 方法将 int[] 装换成 ArrayList
如果此处数组 int[] 换作是 Integer[] 或者任何一个引用类型元素的数组都正确,Arrays 的 asList 方法只能转换引用类型元素的数组。
asList 方法的源码就是这么定义的:
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
{
注意:Arrays.asList(T... a)返回的List中元素是不可变的。
从源码可以看出Arrays.asList(T... a)返回的是一个ArrayList,但是这个ArrayList是Arrays的内部类,不是我们集合框架下的那个ArrayList。
使用stream进行转换(jdk8 推荐)
jdk版本低于1.8不可以使用。
数组通过 Arrays 工具类的 stream() 方法进行流化,获取 Stream 对象。boxed()方法是用来装箱的。
int[] arys = {1,2,3};
List<Integer> list = Arrays.stream(arys).boxed().collect(Collectors.toList());
要转化为ArrayList还需要进行一次强制类型转化
遍历数组,逐个加入元素到List中
可以使用for、增强for循环、迭代器。
使用for循环遍历数组,性能稍微好那么一丢丢。增强for的本质就是迭代器,写法更加简洁。
这里代码就做展示了。
Java中将 int[] 数组 转换为 List(ArrayList)的更多相关文章
- Java 中将字符串数组转换为字符串
Java 中将字符串数组转换为字符串 import java.util.Arrays; import java.util.HashSet; import java.util.Set; public c ...
- js中将类数组转换为数组的几种方法
1.slice方法 最经典的方法,使用Array的slice方法,此方法如果不传参数的话会返回原数组的一个拷贝,因此可以用此方法转换类数组到数组: // 创建一个类数组对象 var alo = {0: ...
- java中将表单转换为PDF
经过网上搜索大概有三种方式:PDF模板数据填充,html代码转换pdf,借用wkhtmltopdf工具 一 .PDF模板数据填充 1.新建word,在word中做出和表单一样的布局的空表单,然后另存为 ...
- JAVA中将byte[]数组转成16进制字符串
方法一: /** * byte数组转化为16进制字符串 * @param bytes * @return */ public static String byteToHexString(byte[] ...
- linq中将int类型转换为string类型,toString()报错
今天同事在调试程序的时候,报了一个不寻常的错误, “LINQ to Entities 不识别方法"System.String ToString()",因此该方法无法转换为存储表达式 ...
- JAVA将Object数组转换为String数组
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; java将Object[ ...
- 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)
方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold&q ...
- 在Java中怎样把数组转换为ArrayList?
翻译自:How to Convert Array to ArrayList in Java? 本文分析了Stack Overflow上最热门的的一个问题的答案,提问者获得了很多声望点,使得他得到了在S ...
- [转]Java中怎样把数组转换为ArrayList
方法汇总: Element[] array = {new Element(1),new Element(2),new Element(3)}; ArrayList<Element> arr ...
- java中将一个字符数组赋值给另一个,两者同时变化
java中将一个字符数组赋值给另一个,两者的变化怎么是同步的?怎么才能让他们独立开? 比如有一个int[][] a 已经存在值,现在定义int[][] b=a;之后改变a的值,为何b也跟着改变?怎么才 ...
随机推荐
- 使用 Auditbeat 模块监控 shell 命令
使用 Auditbeat 模块监控 shell 命令 Auditbeat Audited 模块可以用来监控所有用户在系统上执行的 shell 命令.在终端用户偶尔才会登录的服务器上,通常需要进行监控. ...
- Gitlab基础知识介绍
GitLab架构图 Gitlab各组件作用 -Nginx:静态web服务器. -gitlab-shell:用于处理Git命令和修改authorized keys列表. -gitlab-workhors ...
- cAdvisor容器监控规则
其他说明参考host主机监控规则:https://www.cnblogs.com/sanduzxcvbnm/p/13589848.html 在prometheus主程序目录下的rules目录下新建do ...
- ETL工具Datax、sqoop、kettle 的区别
一.Sqoop主要特点: 1.可以将关系型数据库中的数据导入到hdfs,hive,hbase等hadoop组件中,也可以将hadoop组件中的数据导入到关系型数据库中: 2.sqoop在导入导出数据时 ...
- 内存映射IO(MMIO)
端口I/O 介绍: 一种I/O编址方式是端口映射I/O(port-mapped I/O), CPU使用专门的I/O指令对设备进行访问, 并把设备的地址称作端口号. 在执行其中的一条指令时,CPU使用地 ...
- KVM导入Ubuntu Cloud 镜像创建虚机及调整磁盘大小
Ubuntu Cloud Images Ubuntu官网会给各种公有云平台提供cloud镜像, 例如AWS, MS Azure, Google Cloud, 以及本地虚机环境例如 QEMU, VMwa ...
- mybatis-plugin插件执行原理
mybatis-plugin插件执行原理 今天主要是在看mybatis的主流程源码,其中比较感兴趣的是mybatis的plugin功能,这里主要记录下mybatis-plugin的插件功能原理. pl ...
- 「MySQL高级篇」explain分析SQL,索引失效&&常见优化场景
大家好,我是melo,一名大三后台练习生 专栏回顾 索引的原理&&设计原则 欢迎关注本专栏:MySQL高级篇 本篇速览 在我们上一篇文章中,讲到了索引的原理&&设计原则 ...
- $_SERVER['HTTP_USER_AGENT']:在PHP中HTTP_USER_AGENT是用来获取用户的相关信息的,包括用户使用的浏览器,操作系统等信息
在PHP中HTTP_USER_AGENT是用来获取用户的相关信息的,包括用户使用的浏览器,操作系统等信息. 我机器:操作系统:WIN7旗舰版 64操作系统 以下为各个浏览器下$_SERVER['HTT ...
- 四、Django中使用celery
项目跟目录创建celery包,目录结构如下: mycelery/ ├── config.py ├── __init__.py ├── main.py └── sms/ ├── __init__.py ...