【问题标题】:AP Computer Science: ArrayList Multiple Choice [duplicate]AP计算机科学:ArrayList多项选择[重复]
【发布时间】: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


【解决方案1】:

给你一个ArrayList,它的功能不像一个普通的旧数组。 ArrayList 提供方法 .get(int i) 以返回索引 i 处的元素。

这是因为ArrayList 是一个具有方法和字段的类,而不是原始数据类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 2013-05-14
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    相关资源
    最近更新 更多