我需要一些关于在数组中添加值的帮助
例如
long[] s = new long[] {0, 1, 2};
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我实例化一个带有值的数组
但如果我有另一个值,我如何将其附加到上面的数组
3, 4, 5
Run Code Online (Sandbox Code Playgroud)
这样做
s = new long[] {1, 2, 3, 4, 5, 6};
Run Code Online (Sandbox Code Playgroud)
我尝试了System.arraycopy函数,但我只能覆盖数组,当我尝试追加它时,我得到一个空指针异常
谢谢
解
我使用它与for循环一次一个地输入值
long[] tmp = new long[a.length + x.length];
System.arraycopy(a, 0, tmp, 0, a.length);
System.arraycopy(x, 0, tmp, a.length, x.length);
a=tmp;
Run Code Online (Sandbox Code Playgroud)
您不能在Java中将元素"追加"到数组中.数组的长度在创建时确定,不能动态更改.
如果你真的需要一个long[]解决方案是创建一个更大的数组,复制元素,并将引用指向新数组,如下所示:
long[] s = new long[] {0, 1, 2};
long[] toAppend = { 3, 4, 5 };
long[] tmp = new long[s.length + toAppend.length];
System.arraycopy(s, 0, tmp, 0, s.length);
System.arraycopy(toAppend, 0, tmp, s.length, toAppend.length);
s = tmp; // s == { 0, 1, 2, 3, 4, 5 }
Run Code Online (Sandbox Code Playgroud)
但是,您可能希望使用an ArrayList<Long>来实现此目的.在这种情况下,您可以使用.add-method 追加元素.如果您选择此选项,它应该看起来像
// Initialize with 0, 1, 2
ArrayList<Long> s = new ArrayList<Long>(Arrays.asList(0L, 1L, 2L));
// Append 3, 4, 5
s.add(3L);
s.add(4L);
s.add(5L);
long[] longArray = new long[s.size()];
for (int i = 0; i < s.size(); i++)
longArray[i] = s.get(i);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28075 次 |
| 最近记录: |