❶ java迭代器到底怎麼使用
我們在使用List,Set的時候,為了實現對其數據的遍歷,我們經常使用到了Iterator(跌代器)。 使用跌代器,你不需要干涉其遍歷的過程,只需要每次取出一個你想要的數據進行處理就可以了。但是在使用的時候也是有不同的。 List和Set都有iterator()來取得其迭代器。對List來說,你也可以通過listIterator()取得其迭代器,兩種迭代器在有些時候是不能通用的,Iterator和ListIterator主要區別在以下方面: 1. ListIterator有add()方法,可以向List中添加對象,而Iterator不能 2. ListIterator和Iterator都有hasNext()和next()方法,可以實現順序向後遍歷,但是ListIterator有hasPrevious()和previous()方法,可以實現逆向(順序向前)遍歷。Iterator就不可以。 3. ListIterator可以定位當前的索引位置,nextIndex()和previousIndex()可以實現。Iterator沒有此功能。 4. 都可實現刪除對象,但是ListIterator可以實現對象的修改,set()方法可以實現。Iierator僅能遍歷,不能修改。 因為ListIterator的這些功能,可以實現對LinkedList等List數據結構的操作。 其實,數組對象也可以用迭代器來實現。 org.apache.commons.collections.iterators.ArrayIterator就可以實現此功能。 一般情況下,我們使用Iterator就可以了,如果你需要進行記錄的前後反復檢索的話,你就可以使用ListIterator來擴展你的功能,(有點象JDBC中的滾動結果集)。 ListIterator是一個雙向迭代器。ListIterator沒有當前元素,它的當前游標是位於調用next()和previsous()返回的元素之間。
❷ java的List集合迭代器
是刪除了的,親。是你弄錯 了,你對比一下我給你寫的代碼,你就知道你的問題出在哪了,我只加了一句話。
importjava.util.ArrayList;
importjava.util.Iterator;
importjava.util.List;
publicclassArrayListTest
{
publicstaticvoidmain(String[]args)
{
List<Object>list=newArrayList<Object>();
list.add((byte)56);
list.add((short)5656);
list.add(565656);
list.add(56565656L);
Iteratorit=list.iterator();
while(it.hasNext())
{
Objectobj=it.next();
if(objinstanceofInteger)
{
it.remove();
//刪除成功以後就不應該再輸出這個刪除的值,明白嗎?
continue;
}
System.out.println(obj);
}
}
}
有什麼問題你都可以追問我,沒問題,望採納,謝謝
❸ 在Java中的迭代器有什麼作用啊
由於Java中數據容器眾多,而對數據容器的操作在很多時候都具有極大的共性,於是Java採用了迭代器為各種容器提供公共的操作介面。使用Java的迭代器iterator可以使得對容器的遍歷操作完全與其底層相隔離,可以到達極好的解耦效果。下面是一個使用迭代器遍歷一個序列化和非序列化容器的例子。
mport java.util.*;
publicclass TestIterator {
public static void main(String[] args) {
//創建一個list 它是一個序列化的數據
List list=new ArrayList();
//創建一個map,它是一個非序列化的數據
Map map=new HashMap();
for(int i=0;i<10;i++){
//向容器中添加數據
list.add(new String("list"+i) );
map.put(i, new String("map"+i));
}
//序列化了的數據創建迭代器。
Iterator iterList= list.iterator();//List介面實現了Iterable介面
//進行遍歷 如果容器中有下一個數據,就獲取下一個數據並列印出來
while(iterList.hasNext()){
String strList=(String)iterList.next();
System.out.println(strList.toString());
}
//創建非序列化數據的迭代器,要先將其序列化
Iterator iterMap=map.entrySet().iterator();
//進行遍歷 如果容器中有下一個數據,就獲取下一個數據並列印出來
while(iterMap.hasNext()){
Map.Entry strMap=(Map.Entry)iterMap.next();
System.out.println(strMap.getValue());
}
}
}
這些都是一些基礎的Java知識,在秒秒學的網站上查看資料。