Java List

 

根据数据结构,List 可以分为 数组 和 链表 两种 类型( ArrayList 和 LinkedList )

ArrayList 适合 集合元素的只读操作

LinkedList 适合 集合元素的增减操作

由于,一般操作都只是查询遍历较多,查找指定位置的元素,LinkedList 比 ArrayList 效率低得多,所以会看到ArrayList 用得比较多

 

若需要删除元素,一般是推荐使用迭代器方法(使用迭代器 Iterator 的remove()方法,而不是使用列表 List 的remove()方法

同等情况下,使用 LinkedList + Iterator 迭代器方式 删除元素,速度是最快的

 

但是需要注意,使用 迭代器 Iterator 的遍历是一次性的,只能遍历一次

 若需要多次使用Iterator进行遍历,当一次遍历完成,需要重新初始化Collection的iterator()

 

另外,使用 list.iterator() 遍历删除元素 ,删除的是 list 中相应的元素,所以遍历删除一次后,若只需要查询,直接使用 list 遍历即可

 

 

参考:

  Java List的remove()方法陷阱以及性能优化

  【记坑】Iterator遍历时,多次调用next(),二次遍历需要从Collection重新获取迭代器

 

共同学习,共同进步,若有补充,欢迎指出,谢谢!

posted @ 2019-12-27 15:23  逆水行舟,平原走马  阅读(157)  评论(0编辑  收藏  举报