迭代器ListIterator的add()方法与集合List的add()方法有什么不一样?

迭代器ListIterator的add()方法与集合List的add()方法有什么不一样?,第1张

效果没有区别,但使用上区别很大。

考虑在迭代中使用add()、remove()等方法

使用迭代器调用Iterator.add()、Iterator.remove()后,Iterator.next()还是指向原来的元素

而使用for(int i = 0i<list.size()i++)循环调用list.add(i, obj)后,下一个i指向的是新增的元素,而调用list.remove(i),则下一个i会跳过一个元素。

因此大部分迭代的情况还是优先考虑使用迭代器。

1、通过循环进行删除public static void removeDuplicate(List list) {for ( int i = 0 i <list.size() - 1 i ++ ) {for ( int j = list.size() - 1 j >ij -- ) {if (list.get(j).equals(list.get(i))) {list.remove(j)}}}System.out.println(list)}2、通过HashSet删除public static void removeDuplicate(List list) {HashSet h = new HashSet(list)list.clear()list.addAll(h)System.out.println(list)}扩展资料:List集合代表一个元素有序,可重复的集合,集合中每个元素都有对应的顺序索引。List接口中增加了一些根据索引 *** 作元素的方法:void add(int index,E element ) ?在列表的指定位置插入该元素。boolean addAll(int index,Collection c) ?将集合c包含的所有元素都插入到List集合的index处。Object get(int index) ? ?返回集合index索引出的元素。List额外提供的一个listIterator()方法,提供了专门 *** 作List的方法。ListIterator接口在Iterator的基础上增加了如下方法:boolean hasPrevious(): 返回该迭代器关联的集合是否还有上一个元素。Object previous(): 返回该迭代器的上一个元素。void add((E e): 在指定位置插入一个元素。参考资料来源:百度百科——list


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11596857.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存