首页IT科技int数组转化为arraylist(Java中将 int[] 数组 转换为 List(ArrayList))

int数组转化为arraylist(Java中将 int[] 数组 转换为 List(ArrayList))

时间2025-05-04 15:15:22分类IT科技浏览4103
导读:前言 说起数组转换成 ArrayList,很多同学第一反应就是遍历数组,将元素逐个添加到 ArrayList 中,但是这个看着就lower,一般不会这么答。...

前言

说起数组转换成 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的本质就是迭代器          ,写法更加简洁                。

这里代码就做展示了                 。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
免费写作软件哪个好用点(简单免费的写作的Ai工具) seo还有未来吗?探讨搜索引擎优化的新趋势是什么(SEO还有未来吗?探讨搜索引擎优化的新趋势)