JAVA中remove()

来源:百度知道 编辑:UC知道 时间:2024/05/30 23:46:58
import java.util.*;
class ArrayListTest
{

public static void main(String[] args)
{
ArrayList al=new ArrayList();
al.add("winsun");
al.add("weixin");
al.add("mybole");

Object[] objs=al.toArray();//把a1的元素变成数组

List l=Arrays.asList(objs);//我想问下这句是什么意思?把哪个对象给了List接口,我认为是ArrayList?
System.out.println(l);
Iterator a=al.iterator();//
Iterator b=l.iterator();//都是返回一个Iterator对象
a.next();
a.remove();//正确
b.next();
b.remove();//为什么这个就报错呢?难道是Iterator没有remove()方法
}
}
我的问题就是上面所提到的,我知道remove()是个可选择的方法,但是我觉的a和b应该调用的是同一个类

remove是集合类中的移除函数。例如ArralyList ar=new ArralyList ;
ar.add(123);
ar.remove;则是删除
要移除原来的那个只需要原来的JFrame等于null就可以

可惜啊,那个并不是 ArrayList,也不是你知道的那个
java.util.ArrayList
而是
java.util.Array.ArrayList

这个内部类。

呵呵呵!这个挺骗人的哦!

List l=Arrays.asList(objs);//objs=al.toArray()把a1的元素变成数组==》l
b=l.iterator();//b===》Iterator
b(Iterator )有b.hasmore() b.next()两个方法

Arrays.asList(objs)把一个数组转换为List对象。
用Arrays转换的List对象不具备自己增长的特性,这是一个java语言的细节。
你要想使用增长必须把它再传递给一个真正的ArrayList对象。
请参考Thinking in java第四版关于数组和集合类的两张,会有很大帮助的。

这个问题,如果对JDK不是特别熟悉,如果不去翻源码的话,还真不知道

确实如java2000所说,并且调用的还是AbstractList.Itr里面的方法