慕虎7371278
用List<String>,如ArrayList<String>..它是动态增长的,不像数组(参见:有效Java第2版,第25项:更喜欢列表而不是数组).import java.util.*;//....List<String> list = new ArrayList<String>();list.add("1");list.add("2");list.add("3");System.out.println(list);
// prints "[1, 2, 3]"如果坚持使用数组,则可以使用java.util.Arrays.copyOf若要分配更大的数组以容纳附加元素,请执行以下操作。不过,这确实不是最好的解决办法。static <T> 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)每项业务的摊销费用。另见Java教程/数组数组是一个容器对象,它持有固定数量的单个类型的值。创建数组时将确定数组的长度。在创建之后,它的长度是固定的。Java教程/列表接口
拉莫斯之舞
还有另一个选项,我在这里没有看到,它不涉及“复杂”对象或集合。String[] array1 = new String[]{"one", "two"};String[] array2 = new String[]{"three"};String[] array = new String[array1.length + array2.length];
System.arraycopy(array1, 0, array, 0, array1.length);System.arraycopy(array2, 0, array, array1.length, array2.length);