如何动态地向Java数组添加项目?

在PHP中,您可以通过以下方式将元素动态添加到数组中:


$x = new Array();

$x[] = 1;

$x[] = 2;

之后,$x将是一个像这样的数组:{1,2}。


有没有办法在Java中做类似的事情?


慕运维8079593
浏览 518回答 3
3回答

慕工程0101907

查看java.util.LinkedList或java.util.ArrayListList<Integer> x = new ArrayList<Integer>();x.add(1);x.add(2);

森林海

Java中的数组具有固定的大小,因此您不能像在PHP中那样“在末尾添加内容”。与PHP行为有点类似:int[] addElement(int[] org, int added) {&nbsp; &nbsp; int[] result = Arrays.copyOf(org, org.length +1);&nbsp; &nbsp; result[org.length] = added;&nbsp; &nbsp; return result;}然后您可以编写:x = new int[0];x = addElement(x, 1);x = addElement(x, 2);System.out.println(Arrays.toString(x));但是,这种方案对于较大的阵列而言效率极低,因为它每次都会复制整个阵列。(实际上,它并不完全等同于PHP,因为您的旧数组保持不变)。实际上,PHP数组与Java HashMap完全相同,只是添加了“最大键”,因此它将知道接下来要使用哪个键以及一个奇怪的迭代顺序(以及整数键和某些字符串之间的等效关系)。但是对于简单的索引集合,最好像其他答复者一样使用Java中的List。如果List由于将每个int包装在Integer中的开销而避免使用,请考虑对原始类型使用集合的重新实现,这些类型在内部使用数组,但仅当内部数组已满时才会对每个更改进行复制(就像ArrayList一样)。(一个快速搜索过的示例就是此IntList类。)番石榴含有制造这种包装方法中Ints.asList,Longs.asList等等。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java