java - 需要 Java 方面的帮助,如何将提供的项目添加到数组中
问题描述
总体目标:将提供的项目添加到数组中。您将需要增加数组大小并将新项目添加到列表的末尾。如果名称已经存在(大小写无关紧要),则不要添加该项目。String.toUpperClass
除了和之外,不允许在此方法中使用任何外部类String.Equals
。
为了做到这一点,我写了以下内容:
public int addItem(Item newItem) {
itemList = Arrays.copyOf(itemList, +1);
int done=-1;
for (int i=0;i<itemList.length;i++){
itemList[i]=newItem;
done=(i+1);
}
return done;
}
为了测试这部分代码,我使用了一个 JUnit 测试器,它失败并出现以下异常:
错误:AddItem:放入单个项目并确保其在正确的位置:预期:<[item2]> 但为 <[item1]>。
解决方案
所以在这个 for 循环中,您将 itemList 中的项目复制到 newList
Item[] newList = new Item[itemList.length + 1];
for(int i = 0; i<itemList.length; i++){
newList[i] = itemList[i];
}
您将比原始 itemList 多 1 个空间。
如果您想要来自 arrayList 的数组,我建议您使用 ArrayList。
ArrayList.toArray( T[] a )
这里的回复可以帮助你: 如何向数组添加新元素?
推荐阅读
- java - 底部导航视图中的菜单项 TITLE VISIBILITY
- d3.js - json 中的 D3.js attr 不起作用?
- javascript - 如何在不使用输入的情况下从变量中获取值然后复制到剪贴板?
- javascript - 不能在移动设备上工作
- ios - OCMock3 与 IOS 的集成问题
- ios - 是否可以将 swift 与任何其他语言内联?
- c++ - 更改包含 QButtons 的 Qlayout 的背景颜色
- python - 无法通过 python 发送电子邮件(gmail)
- ansible - 如何在一个地方为所有后续主机设置变量而无需冗余代码?
- typescript - 如何递归使用 Typescript 泛型?