package gem.java.Tel;import java.util.*;public class MyIterator {
public static void main ( String [] args )
{
Collection c = new HashSet();//这个
c.add(new Name("啊三大A" , "1"));
c.add(new Name("啊三大B" , "2"));
c.add(new Name("啊三大C" , "3"));
c.add(new Name("啊三大D" , "4"));
c.add(new Name("啊三大E" , "5"));
Iterator i = c.iterator();//这个
while (i.hasNext())
{
Name n = (Name) i.next(); //这个
System.out.println(n.getName());
}
}
}
class Name 
{
private String name ;
private String name1 ;

public Name( String name , String name1)
{
this.setName(name);
this.setName1(name1);
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getName1() {
return name1;
} public void setName1(String name1) {
this.name1 = name1;
}
}

解决方案 »

  1.   

    Collection c = new HashSet();//这个 在这里是什么作用啊?Iterator i = c.iterator();//这个 在这里是什么作用啊?
    Name n = (Name) i.next(); //这个 在这里是什么作用啊?

    这三个 是什么意思啊?? 在这个代码里是做什么用呢??Collection Iterator 这是两个接口 怎么接口可以直接指向其他类啊??
      

  2.   

    Collection c = new HashSet();
    HashSet集合类,以键值对存储
    Iterator i = c.iterator();
    迭代器,类似fori.next();集合中的每一条数据
      

  3.   

    Collection c = new HashSet();//这里是创建一个HashSet集合对象,因为HashSet是Collection的子类,所以,可以用一个Collection的引用去接受HashSet的实例
    Iterator i = c.iterator();//这里是获取集合的迭代器,建议你去看看源码
    Name n = (Name) i.next(); //迭代器的next()方法获取下一个元素,因为得到的是Object类型,所以需要显示转换回Name类型
      

  4.   

    顶一下,集合本身也可以直接做循环,尤其是做foreach循环,显得代码简洁。但是有时候更推荐使用迭代器iterator,推荐你顺便看一下设计模式中的迭代器,一个东西。
    顺便提醒一下,我过去一直都用foreach循环的,直到又一次出错,就只用foreach做循环的时候我删除其中的某些符合要求的对象,结果导致循环出错,原因是迭代器是把对象一个一个取出,然后做操作,而如果在循环中直接删除,造成了容器在运行时更改了大小,循环次数改变出错,所以更好掌握迭代器很重要
      

  5.   

    没学过java啊!!!!! 
    无语.... 
    HashSet()实现了Collection接口,当然能用Collection c = new HashSet()
      

  6.   

    Collection c = new HashSet();
    在里定义了一个集合,你应该是不明白为什么用Collection来接收吧,这里用到了多态,因为HashSet继承自Collection可以用基类的引用指向子类的对象,这样比如当你要把HashSet改成TreeSet 时就可以简单的改动一下,Collection c = new TreeSet();之后的其它代码均不用改动.Iterator i = c.iterator();
    在这里在取到集合c的迭代器,通过迭代器可以依次取出集合中的每一个值.Name n = (Name) i.next();
    因为在这个集合中你没有使用泛型,所以集合中的每一个元素都是Object类型的,需要强制类型转换,因为它本身就是Name类型的嘛!这三个 是什么意思啊?? 在这个代码里是做什么用呢??