【发布时间】:2021-09-28 12:18:44
【问题描述】:
我有一个带有getAvailableRobot (ArrayList) 方法的类,我想知道该方法的时间复杂度是多少。我知道如果可用只是一个 int 它将是 O(1),但由于它是一个 ArrayList,它仍然是 O(1),还是会在迭代器的帮助下返回一个新列表O(n)?
public class Robot {
protected List<Robot> available;
public List<Robot> getAvailableRobots(){
return available;
}
}
我基本上要求的是另一种方法中这一行的运行时:
List<Robot> newList = getAvailableRobots();
【问题讨论】:
-
"返回可用";意味着您已经评估了列表并且没有计算该函数中的任何其他内容,因此复杂度仅为 O(1)。 “newList”的另一个迭代将是 O(n)。
-
这个方法/简单的 getter 是迭代列表的每个元素还是只返回整个对象?我认为是后者,所以应该是O(1)。
标签: java arraylist time-complexity