迭代器:迭代器是一個對象,他的工作是遍歷並選擇序列中的對象,迭代器通常被稱爲輕量級對象,創建他的代價很小,java 的Iterator是能單項移動,這個Iterator只能用來:
1)使用iterator()返回一個Iterator對象,Iterator將準備好返回序列的第一個對象。
2)next()獲得序列中的下一個元素。
3)是hasnext() 檢查序列中是否還有元素。
4)是用remove()將迭代器新進去返回的元素刪除。
class Pet{
String name = null;
public Pet(String petname){
name = petname;
}
public void getname(){
System.out.println("name:"+name);
}
}
public class SimpleIteration {
public static void main(String[] args) {
List<Pet> petlist = new ArrayList<Pet>();
petlist.add(new Pet("鸚鵡"));
petlist.add(new Pet("老鷹"));
Iterator<Pet> it = petlist.iterator();
while(it.hasNext()){
Pet pet = it.next();
pet.getname();
}
}
}
ListIterator 是Iterator的子類型,只能用於訪問List類,可以雙向移動
public class Listiterator {
public static void main(String[] args) {
List<Pet> petlist = new ArrayList<Pet>();
petlist.add(new Pet("鸚鵡"));
petlist.add(new Pet("老鷹"));
ListIterator<Pet> ll = petlist.listIterator();
while(ll.hasNext()){
Pet pet = ll.next();
pet.getname();
}
ll = petlist.listIterator(1);
while(ll.hasNext()){
Pet pet = ll.next();
pet.getname();
}
}
}
LinkedList :實現了基本的List接口,但是它執行某些操作時比Arraylist更高效,但隨機訪問遜色一點。
Set: Set不保存重複的元素,查找是Set中最重要的操作。
public class Setofinteger {
public static void main(String[] args) {
Set<Integer> setint = new HashSet<Integer>();
for(int i = 0;i<10;i++){
setint.add(new Random().nextInt(10));
}
System.out.println(setint);
}
}
打印的結果是[0, 2, 4, 6, 7, 9]