Java基本类型数组转ArrayList

Posted StubbornAnt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基本类型数组转ArrayList相关的知识,希望对你有一定的参考价值。

先来看源码

  • 当我们调用Arrays.asList(array) 时,实际是执行了包可见的ArrayList的构造函数(注意通常这个构造函数对用户是不可见的,所以不能通过List list = new ArrayList(array)来进行转换
  • 由于a是一个E[]数组,E又是ArrayList的泛型,所以我们传入的实参array必须是对象数组,或者对象列表
  • 如果传入的是基本类型数组,整个数组会被当做一个对象,从而Arrays.asList(new char[]'a','b');转换的类型为 List<char[]>
    public static <T> List<T> asList(T... a) 
        return new ArrayList<>(a);
     
    ArrayList(E[] array) 
        if (array==null)
            throw new NullPointerException();
        a = array;
       
    private final E[] a;  
    private static class ArrayList<E> extends AbstractList<E>  

正确的转换方式

利用自动装箱机制,循环添加元素

public class Demo 
    public static void main(String[] args) 
        List<Character> list = new ArrayList<Character>();
        char[] chs = new char[]'a', 'b';
        for (Character ch : chs) 
            list.add(ch);
        
        System.out.println(list);
    
  

以上是关于Java基本类型数组转ArrayList的主要内容,如果未能解决你的问题,请参考以下文章

数组转arrayList

java 怎么把数组转为list

java中,数组可以存放基本数据类型,而集合就不行,集合中存放的必须是对象(比如说ArrayList

java怎么创建一个float类型的ArrayList,然后怎么把这个ArrayList转换成float数组。谢谢

java,list:定义一个list数组怎么没法定义?该怎么定义...

Java 集合(ArrayList)应用