1. 能说说ArrayList和LinkedList的区别吗?什么场景下会选择使用它们?ArrayList底层是基于动态数组实现的,它在内存中是连续存储的。优势在于随机访问效率高,时间复杂度是O(1),因为可以通过索引直接定位。但插入和删除操作(特别是在中间位置)效率较低,需要移动大量元素,时间复杂度O(n)。LinkedList是基于双向链表实现的,每个节点包含数据和前后指针。它的优势是插入和删除操作效率高,只需要修改指针指向,时间复杂度O(1)。但随机访问效率低,需要从头或尾遍历,时间复杂度O(n)。使用场景上,如果需要频繁随机访问元素,比如根据索引查询,选ArrayList;如果需要频繁...