大多数Java初学者在使用动态数组时,会不假思索的选择ArrayList。但实际上,除了ArrayList,还有LinkedList可供选用。
那么,在使用Java的动态数组时,怎样在ArrayList与LinkedList之间做出选择呢?
一言以蔽之,在大多数使用场景中,ArrayList与ArrayDeque要优于LinkedList。对于初学者来说,在拿不准用哪个时,不妨使用ArrayList。
LinkedList与ArrayList是List接口的两种不同的实现。LinkedList使用双向链表实现。ArrayList则使用动态可变长数组实现。
对于标准的链表和数组运算,不同的方法会有不同的算法运行时间。
对于LinkedList<E>:
- get(int index) O(n)
- add(E element) O(1)
- add(int index, E ...