# 迭代器 Iterator
迭代器是一種設計模式,它是一個物件,它可以遍歷並選擇序列中的物件,
而開發人員不需要了解該序列的底層結構。
迭代器通常被稱為輕量級物件,因為建立它的代價小。
# 使用
Iterator
可以用來處理任何的 collection
。
| public static void main(String[] args) { |
| |
| ArrayList <String> cars = new ArrayList<String>(); |
| cars.add("Volvo"); |
| cars.add("BMW"); |
| cars.add("Ford"); |
| cars.add("Mazda"); |
| |
| |
| Iterator<String> it = cars.iterator(); |
| |
| |
| System.out.println(it.next()); |
| } |
# 歷遍
可以使用 it.hasNext()
和 it.next()
等方法做集合的歷遍。
就直接使用上述的例子改寫:
| |
| while(it.hasNext()) { |
| System.out.println(it.next()); |
| } |
# 刪除 (特定) 元素
使用迭代器可以更輕鬆的更改歷遍的集合。
使用 it.remove()
方法就可以在循環時,刪除掉該元素。
觀看以下,就是刪除小於 10 的元素範例:
| public static void main(String[] args) { |
| |
| ArrayList<Integer> numbers = new ArrayList<Integer>(); |
| numbers.add(12); |
| numbers.add(8); |
| numbers.add(2); |
| numbers.add(23); |
| System.out.println(numbers); |
| |
| |
| Iterator<Integer> it = numbers.iterator(); |
| while(it.hasNext()) { |
| Integer i = it.next(); |
| if(i < 10) |
| it.remove(); |
| } |
| System.out.println(numbers); |
| } |