如何在Java中制作可调整大小的数组?
2022-09-03 17:41:16
在Java中做一个可调整大小的数组的最佳方法是什么?我尝试使用Vector,但是当你进行插入时,所有元素都会转移过来,我需要一个可以增长但元素保持在原位的数组。我相信有一个简单的答案,但我仍然不太确定。
在Java中做一个可调整大小的数组的最佳方法是什么?我尝试使用Vector,但是当你进行插入时,所有元素都会转移过来,我需要一个可以增长但元素保持在原位的数组。我相信有一个简单的答案,但我仍然不太确定。
作为替代方法,您可以使用 ArrayList。它是 List 接口的可调整大小的数组实现。
用法(使用字符串):
List<String> myList = new ArrayList<String>();
myList.add("a");
myList.add("c");
myList.add("b");
顺序就像你把它们放进去一样:a,c,b。
您还可以获得如下所示的单个项目:
String myString = myList.get(0);
这将给你第0个元素:“a”。
正如三条所指出的:“”。列表接口可以由数组支持(例如ArrayList,如Kevin在他的帖子中指出的那样)。当列表结构已满并且必须将新项添加到列表中时。然后,结构首先创建一个新数组,该数组可以包含旧元素以及必须添加到列表中的新元素。An array is a static datastructure, so they can't grow
列表接口具有不同的实现,这些实现都有优点/缺点,您应该选择最能解决您的问题集的实现。下面我将尝试给出一个简短的摘要,何时使用哪种实现:
size, isEmpty, get, set, iterator, and listIterator
add
get()
add()
add()
get()
请注意,这些列表实现不是线程安全的,这意味着从多个线程访问它们时可能会获得争用条件。如果你想使用来自多个线程的List实现,我建议你研究java.util.concurrent包并使用该类的实现。