gpt4 book ai didi

java - 使用空列表比在java中对列表进行空检查更昂贵吗?

转载 作者:行者123 更新时间:2023-12-02 01:52:20 24 4
gpt4 key购买 nike

我有以下代码。我在第 2 行将 list 设置为 null,并进一步检查 list 是否为 null。我想知道创建一个空列表是否比检查 list 是否为 null 更昂贵?

private void check(Product p){
List<ProductAction> list=null; // line 2
if(p.hasSubProducts){
list = // list of
ProductAction for sub products
}
if(list == null){
//some logic
}
}

最佳答案

我只是在评论中重复这个概念。

如果将 list 声明为 null,则声明成本为 O(1),因为您只是在表下声明指向 的指针NULL地址,这是基本内存值。

否则,如果您进行比较if(list == null),您只是说list的地址值等于NULL 地址。显然这个操作的成本是 O(1),因此成本是相同的。

在您的情况下,按可读性顺序编码的最佳方法可能是:

private void check(Product p){
List<ProductAction> list; // this is already equal to null
if(p.hasSubProducts()){
list = // list of
ProductAction for sub products
// i assume you declare and update the list here
}
if(list == null){
//some logic
}
}

这是因为代码中的注释。

关于java - 使用空列表比在java中对列表进行空检查更昂贵吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57419788/

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