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被填充的时候,他和返回值其实是同一个数组;

  • 相关阅读:
    窗口的基本手势事件处理
    用户自定义手势,并识别
    安卓程序国际化,手机屏幕适配器
    排序:冒泡,快排,归并。
    哈夫曼树学习
    二叉树的学习。
    ArrayList和vector的区别
    关于try-catch-finally return 的面试题
    Java中的抽象和封装
    关于SelectedValue的众多解决方案
  • 原文地址:https://www.cnblogs.com/strinkbug/p/5050217.html
Copyright © 2011-2022 走看看