猿问

如何向数组中添加新元素?

如何向数组中添加新元素?

我有以下代码:

String[] where;where.append(ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1");where.append(ContactsContract.Contacts.IN_VISIBLE_GROUP + "=1");

这两个附件没有编译。那该怎么做呢?


千万里不及你
浏览 1085回答 3
3回答

慕虎7371278

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

拉莫斯之舞

还有另一个选项,我在这里没有看到,它不涉及“复杂”对象或集合。String[]&nbsp;array1&nbsp;=&nbsp;new&nbsp;String[]{"one",&nbsp;"two"};String[]&nbsp;array2&nbsp;=&nbsp;new&nbsp;String[]{"three"};String[]&nbsp;array&nbsp;=&nbsp;new&nbsp;String[array1.length&nbsp;+&nbsp;array2.length]; System.arraycopy(array1,&nbsp;0,&nbsp;array,&nbsp;0,&nbsp;array1.length);System.arraycopy(array2,&nbsp;0,&nbsp;array,&nbsp;array1.length,&nbsp;array2.length);
随时随地看视频慕课网APP

相关分类

Java
我要回答