• 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); 
            }
            
        }
    
    }
  • 相关阅读:
    BitSet源码
    BitSet
    webrtc在ubuntu14.04上的编译过程(12.04亦可)
    使用 ssh -R 建立反向/远程TCP端口转发代理
    爬虫与反爬虫
    Linux IO模式及 select、poll、epoll详解
    PF_RING 总结
    40行代码的人脸识别实践
    初学者必读:IBM长文解读人工智能、机器学习和认知计算
    C 格式化显示时间(time.h)
  • 原文地址:https://www.cnblogs.com/lxh520/p/8404792.html
Copyright © 2020-2023  润新知