自用Java迭代器笔记
Java迭代器通过Iterator创建
这个东西用于遍历集合、Map、动态数组(ArrayList和LinkList).这个东西对集合类非常好用。
不要用它去遍历静态数组、字符串数组,没有用。
使用这个东西保存的元素是对原本元素的引用而非原本元素本身。
在Leetcode练习中是一个常用的去重的方法。
这个类下面包含几个常用方法。
iterator.next() 获得序列中下一个元素并返回
iterator.hasNext() 序列是否有下一个元素 如果有返回true 反之返回false
iterator.remove() 将返回的元素删除
测试用例:
ArrayList sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Zhihu");
// 获取迭代器
Iterator<String> it = sites.iterator();
使用这个例子进行基本的测试,这个iterator迭代一遍之后就没有了,由于这个东西获得的是原数据的引用,没有操纵原数据,我不太清楚remove()这个方法起到了什么作用。
这个东西和for的差别在,for是对数据本身进行操作,而iterator是对数据的引用进行操作。