开发者

Java中将 int[] 数组 转换为 List分享

开发者 https://www.devze.com 2022-12-09 10:56 出处:网络 作者: JadeTal
目录前言为什么不能用 Arrays 的 asList 方法将 int[] 装换成 ArrayList使用stream进行转换(jdk8 推荐)遍历数组,逐个加入元素到List中前言
目录
  • 前言
  • 为什么不能用 Arrays 的 asList 方法将 int[] 装换成 ArrayList
  • 使用stream进行转换(jdk8 推荐)
  • 遍历数组,逐个加入元素到List中

前言

说起数组转换成 ArrayList,很多同学第一反应就是遍历数组,将元素逐个添加到 ArrayList 中,但是这个看着就lower,一般不会这么答。

所以马上就会想到Arrays工具类的 asList 方法,如果你这么答,那么恭喜你,答错入坑。

为什么不能用 Arrays 的 asLwww.devze.comist 方法将 int[] 装换成 ArrayList

如果此处数组 int[] 换作是 Integer[] 或者任何一个引用类型元素的数组都正确,Arrays 的 asList 方法只能转开发者_C开发换引用类型元素的数组。

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的内部PQRMesmwUw类,不是我们集合框架下的那个ArrayList。

使用stream进行转换(jdk8 推荐)

jdk版本低于1.8不可以使用。

数组通过 Arrapythonys 工具类的 编程客栈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分享的文章就介绍到这了,更多相关Java中将 int[] 数组 转换为 List内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号