黑马程序员技术交流社区
标题:
关于集合变数组的方法
[打印本页]
作者:
杨希
时间:
2014-4-21 10:31
标题:
关于集合变数组的方法
大家帮我看一下下面的代码,谢谢
import java.util.*;
class Demo3
{
public static void main(String args[])
{
ArrayList<String> as =new ArrayList<String>();
as.add("23");
as.add("sd");
as.add("cv");
String[] arr=as.toArray(new String[as.size()]); //这块new String[as.size()],这是啥意思啊,不太懂,能帮我详细讲解一下吗
sop(Arrays.toString(arr));
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
复制代码
作者:
⒈心只霸占沵
时间:
2014-4-21 10:38
本帖最后由 ⒈心只霸占沵 于 2014-4-21 10:39 编辑
String[] arr=as.toArray(new String[as.size()]); //这块new String[as.size()],这是啥意思啊,不太懂,能帮我详细讲解一下吗
复制代码
分开写就是
String[] strs=new String[as.size()];//定义一个与集合相同长度(集合长度为as.size())的数组
String[] arr=as.toArray(strs); //将集合转成arr,数组和集合长度相同,元素一一对应
复制代码
作者:
雪碧拌米饭
时间:
2014-4-21 10:41
new String[as.size()]不就是定义了一个String类型的数组,而数组的长度是集合as的大小
作者:
kuroro自走核炮
时间:
2014-4-21 10:42
String[] arr=as.toArray(new String[as.size()])
new String[as.size()]创建一个ArrayList集合as长度的字符串数组
as.toArray()
按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。如果指定的数组能容纳列表,则将该列表返回此处。否则,将分配一个具有指定数组的运行时类型和此列表大小的新数组。
如果指定的数组能容纳队列,并有剩余的空间(即数组的元素比队列多),那么会将数组中紧接 collection 尾部的元素设置为 null。(仅 在调用者知道列表中不包含任何 null 元素时才能用此方法确定列表长度)。
就是把ArrayList集合中的元素存到这个数组了。
这个数组的名字就是:String[] arr
总结:这句的意思就是新建了一个名字叫arr的长度和ArrayList集合as一样的数组,然后将ArrayList集合as中的元素存进去。
作者:
Teemo_Mann
时间:
2014-4-21 10:44
public <T> T[] toArray(T[] a)
按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。如果指定的数组能容纳列表,则将该列表返回此处。否则,将分配一个具有指定数组的运行时类型和此列表大小的新数组。
看这个方法说明,也是括号里的a是用于接纳arrayList里面的元素的
所以你代码里
as.add("23");
as.add("sd");
as.add("cv");
add了三次,也就是说arrayList里面有三个元素,当然要一个长度为3的String数组来存储
new String[as.size()]其实也就是创建3个长度的String数组
作者:
idream
时间:
2014-4-21 10:52
String[] arr=as.toArray(new String[as.size()]);
分析:as.size() 是集合as的元素的个数
String[] array = new String[as.size];
查看API有个方法<T>T[] toArray(T[] a)
就是用的这个方法,相当于:即:
String[] arr = as.toArray(String[] array);
这里的T是泛型。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2