黑马程序员技术交流社区

标题: 关于容器的接口Iterator [打印本页]

作者: 芦子骐    时间: 2013-3-23 17:16
标题: 关于容器的接口Iterator
本帖最后由 芦子骐 于 2013-3-23 23:47 编辑

今天看毕老师的视频,看到集合那快,前面的我感觉都会了,但是看到毕老师的一个例子的时候彻底挂了……发现还是没有懂……

请教大牛~~能不能帮我缕缕Iterator  、 Collection 之间的关系??{:soso_e154:}
作者: IT菜鸟    时间: 2013-3-23 17:24

collection(集合)是一个根接口,用来描述一组对象的集合。JDK并没有直接提供对个接口的实现,而是提供了对她的子接口的实现例如set和list等。在collection接口中用的最多的两种基本方法是:add和 Iterator。add是把对象添加到相应的数据结构中,如果成功返回true,否则返回false(集合中不能拥有相同的元素)。而Iterator 方法则返回一个Iterator接口的对象。Iterator接口又包括了三种基本操作:next,hasnext,remove。next用来依次访问数据结构中的元素,hasnext用来判断是否还有没有访问的元素,remove用来删除最后一次调用next返回的对象。
作者: 芦子骐    时间: 2013-3-23 18:27
蔡志刚 发表于 2013-3-23 17:24
collection(集合)是一个根接口,用来描述一组对象的集合。JDK并没有直接提供对个接口的实现,而是提供了 ...

谢谢~~~明白了~~呵呵  主要是Collection中的元素太多了……一时间弄不明白……嘿嘿……
作者: 柳 德 彬    时间: 2013-3-23 20:53
collection(集合)是集合的最顶层根目录,一般不做实现,一般都用它的子接口set和list。
Iterator (迭代器)方法迭代集合的元素,返回一个iterator ,通过它我们就可以遍历整个集合。
作者: michaelchen    时间: 2013-3-23 21:50
  1. /*用ArrayList来添加删除自定义的对象 并且容器里无重复对象
  2. */
  3. import java.util.*;
  4. class Person
  5. {String name;
  6. int age;
  7. Person(String name,int age)
  8. {        this.name=name;
  9.                 this.age=age;
  10. }
  11. public String getName()
  12. {return name;
  13. }
  14. public int getAge()
  15. {return age;
  16. }
  17. public boolean equals(Object obj)//重写Object类的equals方法来判断两个对象是否相等
  18. {if (!(obj instanceof Person))
  19.         return false;
  20.         Person p=(Person)obj;
  21.         return this.name.equals(p.name)&& this.age==p.age;
  22. }
  23. }
  24. class ArrayTest2
  25. {public static void main(String[] args)
  26.         {ArrayList al=new ArrayList(); //Collections里面一个实例
  27.          al.add(new Person("lisi01",30));//向容器里添加元素
  28.          al.add(new Person("lisi02",32));
  29.          al.add(new Person("lisi02",32));
  30.          al.add(new Person("lisi03",33));
  31.          al.add(new Person("lisi04",34));
  32.          al.add(new Person("lisi04",34));
  33.           
  34.          al=singleElement(al);
  35.         // sop(al.remove(new Person("lisi02",32)));//在删除之前会先调用equals方法
  36.          Iterator it=al.iterator();//创建一个迭代器,以便用来遍历容器中元素
  37.        
  38.          while(it.hasNext())//循环遍历容器中的元素
  39.          {Object obj=it.next();
  40.                  Person p=(Person)obj;
  41.                  sop(p.getName()+"...."+p.getAge());
  42.          }
  43.         }
  44. public static void sop(Object obj)
  45.         {System.out.println(obj);
  46.         }
  47. public static ArrayList singleElement(ArrayList al)//定义一个新方法,用来实现容器中没有重复元素的问题
  48.         {ArrayList newAl=new ArrayList();
  49.          Iterator it=al.iterator();
  50.          while(it.hasNext())
  51.          {Object obj=it.next();
  52.                  if(!newAl.contains(obj))
  53.                  newAl.add(obj);
  54.          }
  55.          return newAl;
  56.         }

  57. }
复制代码
希望对楼主有所帮助
作者: 芦子骐    时间: 2013-3-23 22:21
柳 德 彬 发表于 2013-3-23 20:53
collection(集合)是集合的最顶层根目录,一般不做实现,一般都用它的子接口set和list。
Iterator (迭代器 ...

德斌!!!??哈哈 ~~~你怎么也在这里混~~:o




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2