用Iterator实现遍历集合

来源:互联网 发布:健身教材 知乎 编辑:程序博客网 时间:2024/06/05 20:09

hasnext() 与next() 函数的api解释




1.List对象中next()的使用

使用Collection类的Iterator,可以方便的遍历Vector, ArrayList, LinkedList等集合元素,避免通过get()方法遍历时,针对每一种对象单独进行编码。

示例:

[Java] view plain copy
  1. Collection coll = new Vector(); //LinkedList(); //ArrayList();  
  2. coll.add("Tody");  
  3. coll.add("is");  
  4. coll.add("Sunday.");  
  5.   
  6. // Output all elements by iterator  
  7. Iterator it = coll.iterator();  
  8. while(it.hasNext()) {  
  9.     System.out.print(it.next() + " ");  
  10. }  

输出:

Tody is Sunday.



2. Set中next()的使用

[java] view plain copy
  1. Collection coll = new HashSet();  
  2. coll.add("Tody");  
  3. coll.add("is");  
  4. coll.add("Sunday.");  
  5.   
  6. // Output all elements by iterator  
  7. Iterator it = coll.iterator();  
  8. while(it.hasNext()) {  
  9.     System.out.print(it.next() + " ");  
  10. }  

输出:

is Sunday. Tody

 

由上面两个例子看出,在List和Set对象中,Iterator的next()方法返回的值是不一样的。

原因是List属于线性集合,元素是有序的,读取时是按照数组的形式,一个接一个的读取,存储也是按照add的顺序添加的。

而Set属于非线性的,是无序的,所以读取的元素与添加的顺序不一定一致。

对于HashSet,其实它返回的顺序是按Hashcode的顺序。

如果迭代也有序,则可以用LinkedHashSet。

1 0
原创粉丝点击