zoukankan      html  css  js  c++  java
  • 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); 
            }
            
        }
    
    }
  • 相关阅读:
    Java vs Python
    Compiled Language vs Scripting Language
    445. Add Two Numbers II
    213. House Robber II
    198. House Robber
    276. Paint Fence
    77. Combinations
    54. Spiral Matrix
    82. Remove Duplicates from Sorted List II
    80. Remove Duplicates from Sorted Array II
  • 原文地址:https://www.cnblogs.com/lxh520/p/8404792.html
Copyright © 2011-2022 走看看