作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究这个代表整数列表的 NumberList 类。 NumberList 对象只有一个实例变量,它是对一组 int 值的引用。我需要实现的方法之一是假设通过以下方式将参数添加到列表的末尾:
a) 创建另一个比现有数组大一个单位的数组
b) 将现有数组中的所有元素复制到新数组
c) 将参数添加到新数组的末尾
d) 重新分配实例变量“values”,使其指向新数组。
这是我的尝试。没有错误,但我觉得这是不正确的,尤其是我尝试将数字添加到 anotherArray 末尾的部分。我指的参数是“number”,一个int
public void add(int number) {
int[] anotherArray;
int newLength = values.length + 1;
anotherArray = new int[newLength];
for (int i = 0; i <values.length; i++)
values[i] = anotherArray[i];
for (int i = 0; i < anotherArray[i]; i++)
anotherArray[i] += number;
values = new int[anotherArray.length];
}
最佳答案
首先,您的作业是倒过来的。应该是这样的:
for (int i = 0; i < values.length; i++)
anotherArray[i] = values[i];
这会将从 值
分配给 anotherArray
。其次,您想在 anotherArray
中设置新值,如下所示:
anotherArray[newLength - 1] = number;
最后,
values = anotherArray;
这是使用 System.arraycopy
编写该代码的另一种方法:
public void add(int number) {
int[] anotherArray = new int[values.length + 1];
System.arraycopy(values, 0, anotherArray, 0, values.length);
anotherArray[values.length] = number;
values = anotherArray;
}
关于java - 如何将参数添加到数组的末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5574204/
我是一名优秀的程序员,十分优秀!