zoukankan      html  css  js  c++  java
  • Java系列:Collection.toArray用法研究

    该方法的签名如下:

    <T> T[] Collection.toArray(T[] arrayToFill);

    这里想验证两个问题:

    1)arrayToFill什么时候会被填充;

    2)arrayToFill和返回值是否是同一个值?

    测试代码如下。

    static void testToArray(){        
            LinkedList<String> strList = new LinkedList<String>();
            strList.add("zhang.san");
            strList.add("li.si");
            strList.add("wang.wu");
            print("filled array is not large enough.");
            testToArrayHelper(strList, new String[2]);
            
            print("filled array is large enough.");
            testToArrayHelper(strList, new String[3]);
        }
    static void testToArrayHelper(LinkedList<String> strList, String[] filledArray){        
            String[] returnedArray = strList.toArray(filledArray);
            printArray("filled array:", filledArray);
            print("");
            printArray("returned array:", returnedArray);
            print("");
            if(filledArray == returnedArray)
                print("filled array is equal returned array.");
            else
                print("filled array is not equal returned array.");
        }
    static <T> void printArray(String title, T[] array){
            print(title);
            for(T item: array){
                if(item != null)
                    print("item:" + item.toString());
                else
                    print("item is null");
            }
        }
    static void print(String info){
            System.out.println(info);
        }

    输出日志如下:

    filled array is not large enough.
    filled array:
    item is null
    item is null
    returned array:
    item:zhang.san
    item:li.si
    item:wang.wu
    filled array is not equal returned array.
    
    filled array is large enough.
    filled array:
    item:zhang.san
    item:li.si
    item:wang.wu
    returned array:
    item:zhang.san
    item:li.si
    item:wang.wu
    filled array is equal returned array.

    结论,

    1)如果arrayToFill的长度如果小于Collection的长度,则不会填充;

    2)当arrayToFill被填充的时候,他和返回值其实是同一个数组;

  • 相关阅读:
    在Linux下删除文件及文件夹(rm)
    修改Linux文件权限
    文件分页显示(ls -al |more)
    linux的文件权限
    Linux中的重启(reboot)
    linux关机前同步数据(sync)
    hdu4990 Reading comprehension 矩阵快速幂
    hdu4965 Fast Matrix Calculation 矩阵快速幂
    hdu4847 Wow! Such Doge! KMP
    hdu4705 Y 树形DP
  • 原文地址:https://www.cnblogs.com/strinkbug/p/5050217.html
Copyright © 2011-2022 走看看