[英]Checking if ArrayList element exists or not
我會盡力解釋這一點。 我有一個String的ArrayList。 我正在嘗試為webapp實現服務器端分頁。 我限於從此ArrayList讀取的每頁項目數(在這種情況下為6)。 可以說,ArrayList是整個目錄,每個頁面都將占據一部分以填充頁面。 當有足夠的元素來填充特定頁面時,當我們擊中ArrayList的末尾(該頁面段剩余少於6個項目)時,我可以使其工作正常。 如何檢查ArrayList是否在其最后一個元素上,或者下一個元素不存在? 我有以下代碼(使用偽ish代碼):
int enterArrayListAtElement = (numberOfItemsPerPage * (requestedPageNumber - 1));
for (int i = 0; i < numberOfItemsPerPage; i++) {
if (!completeCatalog.get(enterArrayListAtElement + i).isEmpty() {
completeCatalog.get(enterArrayListAtElement + i);
}
}
代碼中的if是問題。 任何建議將不勝感激。
謝謝。
聽起來像您想要的:
if (enterArrayListAtElement + i < completeCatalog.size())
這將阻止您嘗試獲取列表末尾以外的值。
如果是這種情況,您可能需要將for循環的范圍更改為以下內容:
int actualCount = Math.min(numberOfItemsPerPage,
completeCatalog.size() - enterArrayListAtElement);
for (int i = 0; i < actualCount; i++) {
// Stuff
}
(如果使用較短的名稱,例如使用firstIndex
而不是enterArrayListAtElement
和pageSize
而不是numberOfItemsPerPage
,則可能會更易於格式化。)
你不能只是得到
completeCatalog.size()
並與我比較? 即回答問題“是否有第i個元素”,您說
if (i<completeCatalog.size())
您只需要添加第二個表達式來查看是否已經到達列表的末尾:
int enterArrayListAtElement = (numberOfItemsPerPage * (requestedPageNumber - 1));
for (int i = 0; i < numberOfItemsPerPage; i++) {
if (enterArrayListAtElement + i < completeCatalog.size() && !completeCatalog.get(enterArrayListAtElement + i).isEmpty() {
completeCatalog.get(enterArrayListAtElement + i);
}
}
ArrayList具有size()方法,該方法返回List中的元素數。
因此,您可以在if語句中使用它來檢查您是否過分。
例如,
if(enterArrayListAtElement + i < completeCatalog.size()) {
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.