以下两种将集合转换为数组对象的方法有什么根本区别
ArrayList<String> iName = new ArrayList<String>();
String[] array= iName.toArray(new String[iName.size()]);//1
String[] array= iName.toArray(new String[0]);//2
什么时候应该使用approach-1,什么时候应该使用approach-2?
第一种方法更好,因为您创建了一个数组,并且toArray
使用它来存储输入列表的元素。第二种方法的结果是toArray
创建另一个数组,因为它不能在空数组中存储任何内容。
如果您向该方法传递一个长度大于输入列表大小的数组,您将遇到不同的行为,因为在这种情况下,size
数组的元素(其中size
是输入列表的大小)将被分配为空。
将小于列表大小的数组传递给方法唯一有意义的情况是,如果您在调用方法时没有实例化数组,而是使用预先存在的数组:
array = iName.toArray(array);
在这里你事先不知道是否array
将足够大以包含以下元素iName
。如果不是,toArray
将返回一个新数组。如果是,toArray
将返回输入数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)