Java:如何在一行中初始化Java数组?

70
int[] array1 = {1, 2, 3, 4, 5, 6, ,7, 8}; - working


array1 = {1, 1, 1, 1, 2, 5, ,7, 8}; - NOT working

第一行可以正常工作,但第二行无法正常工作。

我如何将第二行的初始化代码简化为单行代码?

2个回答

130

2
请在您的答案中添加文档链接:http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html - uthark
2
重要的是“新”。 - Thorbjørn Ravn Andersen
1
@uthark:我在你提供的链接页面上没有看到这种语法。最接近的是底部的数组复制,但那不是一个一行解决方案。你能更具体一些吗? - MikeD

6
第一个代码之所以有效是因为编译器可以检查你将要分配给数组的元素数量,然后分配适当数量的内存。
编辑:我现在意识到你只是想用新数据更新array1... Mike D的答案解决了这个问题。

1
顺带一提,如果您将数组发送给其他东西(比如图形列表处理器)并像上面那样重新初始化数组,则与图形列表处理器的链接将会断开。我在开发Android时就遇到了这个问题。所以,如果您想要更新列表,最好的方法是清除它并使用自己的工具添加更多项。而且永远不要使用new。 :p - user1499731

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接