日期:2014-05-20  浏览次数:20636 次

ArrayList是如何返回数组中元素的的
ArrayList是以数组作为底层类型的;
那它是如何返回一个泛型类型的;
不论它是
E[]   data=(E[])new   Object[128];
还是在next()中
  E   a=(E)data[nextEmptyslot];
都会出现警告;我想他们不会这样做吧?

------解决方案--------------------
个人觉得你的考虑是不必要的,如果你真想考虑,那么用泛型好了
ArrayList <String> list=new ArrayList <String> ();
list.add( "aaa ");
list.add( "bbb ");

for (int i=0;i <list.size();i++){
@SuppressWarnings( "unused ")
String str=list.get(i);
System.out.println(str);
}
------解决方案--------------------
看jdk的源代码就知道了,内部使用一个数组来表示,数组的类型也可以用泛型来表示
------解决方案--------------------
在eclispe里,编辑你的源代码的时候,按住ctrl键,单击类名ArrayList,就可以打开源代码,如果跳出要关联源代码的提示,你只要选择jdk安装目录下的src.zip就可以了。

如果不是用eclipse,可以直接把src.zip解压找到ArrayList.java