我有一个想法,可以绕过 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;
}
}
最佳答案
首先,我赞扬您尝试创建自己的ArrayList
,因为您说您是java初学者。
你真的很接近了,你的第二个 for 循环只是一个小问题:
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 < list.length; a++)
list[a] = nums[a -group.length];
group = list;
}
您希望它循环到新列表
的末尾,而不是nums
,因为我们希望使用a
来指定位置元素所在的数组。
此外,这可能有点题外话,但您的解决方案似乎在 Array
类中的任何位置都无法指定 group[]
.因此考虑添加一些 getter 和 setter 进行测试:
public class Array {
private int[] group;
public int[] getGroup() {
return group;
}
public void setGroup(int[] group) {
this.group = group;
}
然后,当您测试 addNums()
方法时,您可以执行以下操作:
public static void main(String[] args) throws IOException {
Array m = new Array();
int[] startArray = {1,2,3,4,5};
m.setGroup(startArray);
int[] endArray = {6,7,8,9,10,11,12};
m.addNums(endArray);
System.out.println(Arrays.toString(m.getGroup()));
}
关于java - 向数组添加数据 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47753043/