(1)iterator的三个方法:
1.hasNext():没有指针下移操作,只是判断下一个元素是否存在;
2.next():指针下移,并返回指针所指向的元素;
3.remove():删除当前指针所指向的元素,一般与next()配合使用;
1、当创建完成指向某个集合或者容器的Iterator对象时,这时的指针其实指向的是第一个元素的上方,即指向空。
2、当调用hasNext方法的时候,只是判断下一个元素的有无,并不移动指针。
3、当调用next方法的时候,向下移动指针,并且返回指针指向的元素,如果指针指向的内存中没有元素,会报异常。
4、remove方法删除的元素是指针指向的元素。如果当前指针指向的内存中没有元素,那么会抛出异常。
(2)add(),offer(),poll()
1.addLast()和add():两者都将元素链接到队列或链表的尾部,区别是后者会返回true;
2.add()和offer():在链表中二者的使用是一致的,在队列中,因为有容器大小的限制,add()方法如果因为容量限制添加失败,会抛出IllegalStateException异常,而offer()方法则直接返回false表示添加失败,不会抛出异常;
3.offerLast()和add()效果一样;
4.pollFirst与removeFirst():前者删除并返回队首元素,若队列为空,返回null;后者也是删除并返回队首元素,但是若队列为空,会抛出异常;
总结:需要链接元素到队尾时,优先使用offer(),查看元素优先使用peek(),删除元素优先使用poll();