簡體   English   中英

Java ArrayList避免IndexOutOfBoundsException

[英]Java ArrayList avoiding IndexOutOfBoundsException

我有一個簡短的問題。

ArrayList<T> x = (1,2,3,5)

int index = 6
if (x.get(6) == null) {
    return 0;
}

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 6, Size: 4

我怎么能避免這個? 我只想檢查數組中是否有索引6的內容。如果有(null)/(沒有)我想返回0。

只需使用列表的大小(它不是數組):

if (x.size() <= index || x.get(index) == null) {
    ...
}

或者,如果要檢測具有非空值的有效索引,則使用:

if (index < x.size() && x.get(index) != null) {
    ...
}

在這兩種情況下,如果表達式的第一部分檢測到索引對列表無效,則不會進行get調用。

請注意,“沒有元素6”(因為列表沒有7個元素)和“有一個元素6,但它的值為空”之間存在邏輯差異 - 在這種情況下,它可能對您不重要,但你需要明白它不同的。

檢查arraylist的大小。 如果size小於6,則返回0 else返回值

首先使用size()檢查列表的size() ,然后檢查索引。

if (x.size() <= 6 || x.get(6) == null) {
    return 0;
}

暫無
暫無

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

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