日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java Iterator 接口简介和简单用法.

發布時間:2025/3/20 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java Iterator 接口简介和简单用法. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Iterator 的中文意思是迭代器. ?

單單從中文翻譯也不易理解迭代器的意思啊, ?其實Iterator是1個接口, ?它的作用就是遍歷容器的所有元素.


一, Iterator 接口簡介

Iterator 是為了實現對java容器(collection)進行遍歷功能的1個接口.
我們定義iterator (首字母小色) 是實現了Iterator 接口的1個對象.



首先iterator 實現了Iterator接口后, 相當于把1個Collection容器的所有對象, 做成1個線性表(List) . 而iterator本身于1個指針.
這個指針一開始是位于 第1個元素之前的. 如下圖 ?

下面介紹2個Iterator接口內最主要的三個方法.

1.1 boolean hasNext();

判斷iterator 內是否存在下1個元素, 如果存在返回true, 否則返回false.
注意, 這時上面的那個指針位置不變.


1.2 Object next();

返回iterator 內下1個元素, 同時上面的指針向后移動一位.
如下圖:


可見, 如果不斷地循環執行next()方法, 就可以遍歷容器內所有的元素了.

1.3 void remove();

刪除iterator?內指針的前1個元素, ?前提是至少執行過1次next(); ?
這個方法不建議使用, 建議使用容器本身的romove方法.



二, Iterator 接口的意義

我們知道, 遍歷1個ArrayList 和 Linklist 是十分容易的. ?
遍歷1個Tree容器也不難, ?但是實現機制是完全不同.
而遍歷1個Set容器就無從下手了.

所以Java 設計了Iterator這個接口, ?分別讓各種容器自己去重寫里面的hasNext() 和 next()方法.
所以我們不用關心各種容器的遍歷機制, ?只要使用Iterator , ?會讓人覺得各種容器的遍歷方法都是一樣的, 這也是java接口的重要意義.

三, ?如何使用 Iterator?



但是在java的各種容器內, 例如ArrayList, HashSet等, 并沒有直接實現Iterator這個接口.
所以ArrayList, HashSet容器內是沒有 hasNext(), next()的方法的.

而是具有 iterator() 這個方法, 返回1個實現了Iterator 接口的 iterator 對象.
注意區別啊.

下面是1個簡單例子, 遍歷1個HashSet
import java.util.HashSet; import java.util.Iterator;class Student{private int id;private String name;public Student(int id, String name){this.id = id;this.name = name;}//overwritepublic String toString(){return this.id + ":" + this.name;}//overwrite hashCode()public int hashCode(){return id * name.hashCode();}//overwrite equals()public boolean equals(Object o){Student s = (Student)o;return (s.id == this.id) && (s.name.equals(this.name));}}public class Iterator1{public static void f(){HashSet hs = new HashSet();hs.add(new Student(1,"Jack"));hs.add(new Student(2,"Bill"));hs.add(new Student(3,"Alice"));hs.add(new Student(4,"Cici"));Student st;Iterator it = hs.iterator(); //Polywhile (it.hasNext()){st = (Student)(it.next());System.out.println(st);} }}

輸出: [java] 2:Bill[java] 1:Jack[java] 4:Cici[java] 3:Alice















總結

以上是生活随笔為你收集整理的Java Iterator 接口简介和简单用法.的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。