簡體   English   中英

使用空列表比在Java中對一個列表進行空檢查昂貴嗎?

[英]is using empty list expensive than doing a null check om a list in java?

我有下面的代碼。 我在第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 
  }
}

這是因為代碼內有注釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM