向Java数组添加数据
我有一个想法,可以绕过Java中普通数组的空间硬限制。这样行吗
public class Array{
private int[] group;
public void addNums(int[] nums) {
int[] list = new int[group.length + nums.length];
for (int a = 0; a < group.length; a++)
list[a] = group[a];
for (int a = group.length; a < nums.length; a++)
list[a] = nums[a - group.length];
group = list;
}
}
# 1 楼答案
你的方法会奏效,但你不应该重新发明轮子
ArrayList. addAll()
为您这样做(有一个区别,没有ArrayList<int>
,只有ArrayList<Integer>
,但您几乎不会注意到区别)因此,我建议使用
ArrayList
或Vector
或其他一些List
实现# 2 楼答案
如果必须使用
int[]
而不是List<Integer>
,则可以使用System.arraycopy()
方法# 3 楼答案
首先,我推荐您尝试创建自己的
ArrayList
,正如您所说,您是java初学者你真的很接近了。你的第二个for循环有一个小问题:
您希望它循环到新的
list
的末尾,而不是nums
,因为我们希望使用a
来指定元素在数组中的位置此外,这可能有点离题,但您的解决方案似乎不在
Array
类中的任何位置,无法指定group[]
中的内容。因此,考虑添加一些吸气剂和设定器进行测试:然后,当您测试
addNums()
方法时,您可以这样做: