gpt4 book ai didi

java - isEmpty() 在幕后如何工作

转载 作者:行者123 更新时间:2023-12-01 16:43:07 28 4
gpt4 key购买 nike

我必须优化和算法,我注意到我们有一个像这样的循环

while (!floorQueues.values().stream().allMatch(List::isEmpty))

似乎在每次迭代中它都会检查该映射中的所有列表是否为空。 map 中的数据是从这样的二维数组中获取的

int currentFloorNumber = 0;
for (int[] que : queues) {
List<Integer> list = Arrays.stream(que).boxed().collect(Collectors.toList());
floorQueues.put(currentFloorNumber, list);
currentFloorNumber++;
}

我认为如果我在转换数据时获取数组中元素的计数,然后检查我从列表中删除了多少次作为结束循环的条件,这将是更优化的

while (countOfDeltedElements < totalCountOfElements)

但是当我测试代码时,它的运行速度比以前慢。所以我想知道 isEmpty 背后是如何工作的场景比我的解决方案更快。

最佳答案

这可能取决于实现 List 的类的实现。
ArrayList 只是检查是否有 0 个元素:

/**
* Returns <tt>true</tt> if this list contains no elements.
*
* @return <tt>true</tt> if this list contains no elements
*/
public boolean isEmpty() {
return size == 0;
}

关于java - isEmpty() 在幕后如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58873877/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com