List 集合是一个常用的集合,应该理解它的子类集合才能运用自如
首先是我们常用的ArrayList集合:底层的数据结构使用的是数组结构,由于这一结构所以他具有下标所以导致了它在查询的速度在这个List集合大家庭里是
很快的,但是增删却相对慢了,因为要往该集合中间增加一个元素的时候所有后面的元素全部都要挪位置,这一机制导致
了它的增加和删除的效率,但是在末尾增加删除的时候不会影响它的速度
而且对于遍历ArrayList集合,它除了Iterator(),还有自己专用的迭代器ListIterator
以下是Iterator与ListIterator的比较
1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能 2. ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍 历。Iterator就不可以。 3. ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。 4. 都可实现删除对象,但是ListIterator可以实现对象的修改,set()方法可以实现。Iierator仅能遍历,不能修改。
可以看的出来专用的迭代器要比Iterator功能更多
然后是LinkedList集合:它的底层使用的是链表数据结构,该数据结构导致查询会很慢,但是在增加和删除的时候却很快,所以在使用增加删除比较频繁的时
候就选它了
最后Vector集合:元老级的集合,出现的比较早。它和ArrayList结构是一样的,但是它是同步的,这也就意味这它不论查询还是增加删除都比较慢,只不过它
比较安全,但是我们还是不用它,因为在面对多线程同时操作ArrayList的时候我们自己可以手动的给它加锁,这样既安全又有效率保证,所以该集合了解
一下就好