用List,如ArrayList..它是动态增长的,不像数组(参见:有效Java第2版,第25项:更喜欢列表而不是数组).import java.util.*;//....List list = new ArrayList();list.add("1");list.add("2");list.add("3");System.out.println(list);
// prints "[1, 2, 3]"
如果坚持使用数组,则可以使用java.util.Arrays.copyOf若要分配更大的数组以容纳附加元素,请执行以下操作。不过,这确实不是最好的解决办法。static T[] append(T[] arr, T element) {
final int N = arr.length;
arr = Arrays.copyOf(arr, N + 1);
arr[N] = element;
return arr;}String[] arr = { "1", "2", "3" };System.out.println(Arrays.toString(arr));
// prints "[1, 2, 3]"arr = append(arr, "4");System.out.println(Arrays.toString(arr)); // prints "[1, 2, 3, 4]"
这是O(N)每append. ArrayList另一方面,O(1)每项业务的摊销费用。
另见数组是一个容器对象,它持有固定数量的单个类型的值。创建数组时将确定数组的长度。在创建之后,它的长度是固定的。