2014-11-04 44 views
-3

我談論Integer對象數據類型,而不是原始intJava:如何獲得整數(對象)數組的大小?

假設這樣的:

Integer[] arr = new Integer[5]; 
    arr[0] = 2; 
    arr[1] = 2; 
    arr[2] = 3; 

則數組看起來像這樣{2,2,3,null,null}

我怎樣才能獲得數組的大小?在這種情況下,大小爲5

+0

與其他任何數組相同的方式:'arr.lehgth'。 – 2014-11-04 19:13:36

+0

'null'是所有對象數組的默認元素值。 – 2014-11-04 19:15:07

+0

我將此問題標記爲收藏夾,因爲我誤解了它。我認爲問題在於*將使用多少內存(以字節爲單位)*。這將如何完成? – 2014-11-05 18:38:42

回答

4

相同的方式,對任何其他陣列 - 使用length字段:

int length = arr.length; // 5 

JLS section 10.7

數組類型的成員是以下全部:

  • 公共最終字段length,其中包含comp的數量陣列的螞蟻。長度可能是正數或零。
  • ...

如果要算上非空值,你會使用類似:

int count = 0; 
for (Integer value : arr) { 
    if (value != null) { 
     count++; 
    } 
} 

(我敢肯定有一個聰明的方法做這在更少的行中使用Java 8中的流API,但讓我們現在保持簡單...)

+0

雖然初始化了5個元素,不會返回5嗎?我想他是在問如何確定有多少元素不爲空。 – SnakeDoc 2014-11-04 19:13:59

+3

@SnakeDoc:我不這麼認爲 - 看問題:「在這種情況下,大小是5」 – 2014-11-04 19:14:26

+0

@SnakeDoc在這裏與Skeetmeister達成協議。這個問題的措辭似乎表明,OP對*所有成員*感興趣,無論是否爲空。 – christopher 2014-11-04 19:15:03