【发布时间】:2014-06-20 07:20:10
【问题描述】:
考虑以下方法帽子旨在通过将所有出现的name替换为newValue来修改其参数nameList
public void replace(ArrayList<String> nameList, String name, String newValue) {
for (int j = 0; j < nameList.size(); j++) {
if (/*expression*/)
namelist.set(j, newValue);
}
}
以下哪项可用于替换 /* 表达式 */ 以使 replace 按预期工作?
(a) nameList.get(j).equals(name)
(b) ...
(c) ...
(d) ...
(e) nameList[j].equals(name)
我选择了e,但正确答案是a。我不太明白为什么a 有效但e 无效,我也不完全确定两者之间有什么区别...
您可以在这里找到问题,第 9 页:
http://xhs-java-oop.wikispaces.com/file/view/PracticeProblems.pdf
【问题讨论】:
-
(e) 无法编译,因为 nameList 不是数组类型。但即使使用 (a) 代码也不会编译,因为 namelist.set(j, newValue) 指的是 namelist 而不是 nameList (挑剔但我猜它是一个考试问题)
-
@salyh 看着原来的考试,这似乎只是发帖人的一个错字
标签: arrays methods arraylist java