黑马程序员技术交流社区
标题:
迭代器
[打印本页]
作者:
胡焱老师
时间:
2014-3-26 17:35
标题:
迭代器
mport java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
class CollectionDemo
{
public static void sop(Object obj)
{
System.out.println(obj);
}
/**
* @param args
*/
/*public static void text () {
// TODO Auto-generated method stub
ArrayList al=new ArrayList();
//添加元素
al.add("java01");
al.add("java02");
al.add("java03");
al.add("java05");
//打印原元素
sop(al);
//在指令位置添加元素
//al.add(1,"java09");
//sop(al);
//移除指定位置的element
//al.remove(2);
//al.remove("java01");//移除指令单例element
//al.removeAll(al);//移除所有袁术
//修改某个角标的element、
//al.set(1,"java11");
//通过角标获取元素
//sop(al.get(0));
//获取所有元素
for(int x=0;x<al.size();x++)
{
//sop(x+":"+al.get(x));
}
//迭代器 Iterator
//Iterator it=al.iterator();//这里的集合方法 返回的是接口 接口怎么能直接用啊???接口不是要实现后才能用吗???
//while(it.hasNext())
//{
//sop(it.next());
// }
//通过indexOf获取对象的位置角标。返回的是int值
//sop(al.indexOf("java01"));
//sop(al.lastIndexOf("java06"));//没有则返回-1
//subList()返回一个接口(interface) 从角标 1 到角标3的(不包括)元素
List ls=al.subList(1,3);
sop(ls);
作者:
MVP
时间:
2014-3-26 18:29
Iterator是java中数据结构的一种, ArrayList也是其中的一种啊,由于 ArrayList是继承于java.util.list的,所以 ArrayList的对象可以调用List的方法,而iterator()就是List的一个方法,调用该方法后返回一个基于 ArrayList中内容的iterator结果集,然后可以根据返回的对象访问各个数据,基本方法为hasNext()和next()(返回Object类型)和Enumeration差不多的。所以可以直接使用,调用里面的方法。
作者:
谭荣强
时间:
2014-3-26 21:41
集合Collection继承了Iterator,集合在调用iterator的时候返回的是Iterator的子类,接口的子类当然可以调用接口的方法。
作者:
QQNumber
时间:
2014-3-27 14:06
iterator()方法返回一个迭代器,是一个实例,不是一个接口,是一个实现了Iterator的对象
作者:
._抬眉﹏
时间:
2014-3-27 14:28
昨天刚好复习了一下集合类这块,看了一楼的回复我有点不理解了,我看的是毕向东老师的视频,我是这样理解这个问题的,我认为Iterator是个借口,它的实现类分别在各种集合类里面作为内部类,比如像arraylist,linkedlist,hashset等等,因为他们底层的数据结构不相同,多以他们的迭代方法也就不相同,他们如果要实现迭代就要通过
类的对象.iterator()来获得自己的迭代器,它返回的是接口Iterator的实现类,所以在下面it.hasNext()是可以使用的,这是我的愚见,有什么不对的地方,请指教。
作者:
._抬眉﹏
时间:
2014-3-27 14:30
它返回的是接口Iterator的实现类 这句话说错了。
应该是它返回的是接口Tterator的实现类对象。父类的引用可以指向子类的对象。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2