是的,Java列表(List)可以动态扩容。Java中的列表实现主要有ArrayList和LinkedList两种。它们都是实现了List接口的类。
-
ArrayList:ArrayList是基于数组实现的动态数组,它可以根据需要自动调整容量。当向ArrayList中添加元素时,如果当前容量不足以容纳新元素,ArrayList会自动扩容。扩容时,ArrayList会创建一个新的数组,其容量为原数组的1.5倍(具体倍数可能因JDK版本而异),然后将原数组的所有元素复制到新数组中。
-
LinkedList:LinkedList是基于双向链表实现的,它不需要预先分配固定容量。当向LinkedList中添加元素时,只需要创建一个新的节点,并将其添加到链表的末尾。因此,LinkedList的容量是动态的,不需要像ArrayList那样进行扩容操作。
总之,Java列表(ArrayList和LinkedList)都可以实现动态扩容。