• List toArray() toArray(T[] a)


    package toarray;
    
    import java.util.List;
    public class TestOne {
    
        @SuppressWarnings("unchecked")
        public static void main(String[] args) {
            /**
             * 
             * 1、创建一个ArrayList对象,默认创建一个长度是10的数组
             * 
             * 2、add时改变容量size
                public boolean add(E e) {
                    ensureCapacityInternal(size + 1);  // Increments modCount!!
                    elementData[size++] = e;
                    return true;
                }
             * 
             * 
             * 3、toArray()  Arrays拷贝一份数据返回Object[]类型
             public Object[] toArray() {
                return Arrays.copyOf(elementData, size);
             }
             * 
             * 
             4. toArray(T[] a)  传入数组参数,  返回数组类型是参数数组类型
             1)当参数数组长度length小于 ArrayList对象的size,Arrays拷贝一份数据返回
             2)...................................大于................. System.arraycopy拷贝一份数据返回,空余位赋null值
                 @SuppressWarnings("unchecked")
                public <T> T[] toArray(T[] a) {
                    if (a.length < size)
                        // Make a new array of a's runtime type, but my contents:
                        return (T[]) Arrays.copyOf(elementData, size, a.getClass());
                    System.arraycopy(elementData, 0, a, 0, size);
                    if (a.length > size)
                        a[size] = null;
                    return a;
                }
             */
            
            @SuppressWarnings("rawtypes")
            List list = new ArrayList();
            list.add("1");
            list.add("2");
            list.add("3");
            list.add("4");
            
            String[] arr1 =  (String[]) list.toArray();
            String[] arr2 =  (String[]) list.toArray(new String[6]);
            
            
            for(String str : arr1){  //Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
                System.out.println(str); 
            }
            
            for(String str : arr2){
                System.out.println(str); 
            }
            
        }
    
    }
  • 相关阅读:
    python functools.lru_cache做备忘功能
    python clock装饰器 计算函数执行时间,执行结果及传入的参数
    python 闭包计算移动均值及nonlocal的使用
    使用 memoryview 和 struct 查看一个 GIF 图像的首部
    寻医问药 爬虫
    defaultdict使用及__missing__理解
    字典推导式
    collections deque队列及其他队列
    bisect 二分查找
    python array 使用创建10万浮点数
  • 原文地址:https://www.cnblogs.com/lxh520/p/8404792.html
Copyright © 2020-2023  润新知