BasicTS 配置类设计深度解析:把时序任务做到“配置即一切”
2026/10/14 23:11:56
在Java集合框架中,ArrayList和LinkedList都是List接口的实现类,但底层数据结构和操作效率存在显著差异:
ArrayList
基于动态数组实现。初始容量为10,当元素超出容量时,自动扩容至原容量的1.5倍(例如:newCapacity = oldCapacity + (oldCapacity >> 1))。
LinkedList
基于双向链表实现。每个节点(Node)包含数据域和两个指针: $$ \text{Node} = { \text{prev}, \text{element}, \text{next} } $$
ArrayList:$O(1)$array[index]。LinkedList:$O(n)$ArrayList:LinkedList:ArrayListLinkedListArrayList:LinkedList:// ArrayList 尾部插入高效 ArrayList<Integer> arrayList = new ArrayList<>(); arrayList.add(1); // O(1) // LinkedList 中间插入高效 LinkedList<Integer> linkedList = new LinkedList<>(); linkedList.add(0, 1); // O(1) 若已知位置| 特性 | ArrayList | LinkedList |
|---|---|---|
| 随机访问 | $O(1)$ | $O(n)$ |
| 头部插入/删除 | $O(n)$ | $O(1)$ |
| 尾部插入/删除 | $O(1)$(均摊) | $O(1)$ |
| 中间插入/删除 | $O(n)$ | $O(n)$(定位)+ $O(1)$(操作) |
| 内存占用 | 更低 | 更高(指针开销) |