将数据添加到数组 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;
  }
}
卢克·加里根

首先,我赞扬您尝试创建自己的,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;
}

您希望它循环到 new 的末尾,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()));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章