list陣列遍歷時能不能使用remove()方法,要注意什麼
面試的時候經常會被問到,list遍歷時能不能使用remove()方法?
能不能使用呢?話說存在即合理,能使用時肯定可以的,不過要做點修改,看下面直接使用remove()的結果。
List<String> list=new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
for(int i=0;i<list.size();i++){
if(i==1)list.remove(1);
System.out.println(list.get(i));
}
輸出結果是:
1
3
4
看結果好像沒什麼錯,但是如果是if(i==3),那麼就是刪除最後一個元素了,那後面的輸出語句就會報下標越界了:
因為刪掉一個元素後後面的元素下標都會減一,因此實際使用的時候注意到這一點就行了。面試的時候跟面試官說清楚這一點就行了。
相關推薦
list陣列遍歷時能不能使用remove()方法,要注意什麼
面試的時候經常會被問到,list遍歷時能不能使用remove()方法?能不能使用呢?話說存在即合理,能使用時肯定可以的,不過要做點修改,看下面直接使用remove()的結果。List<String> list=new ArrayList<String>
TP5:二維陣列遍歷用save()方法 ,報主鍵ID重複解決方法
$mUser = model('User'); foreach ($arrData as $k => $v) { $arrData[$k]['addtime'] = time(); $res = $mUser->isUpdate(false)->data($arr
ArrayList中remove()方法刪除長度大於5的元素之後下標重定位的問題
com 有一個 fad 就刪除 成了 位置 p s cnblogs 中心 1、問題闡述 需求: 有一個ArrayList數組,要求刪除長度大於5的字符串,如:arr = {"ab1","123ad","bca","dadfadf","dddaaa","你好啊","我來
ArrayList get() add() remove()方法LinkedList get() add() remove()方法的時間複雜度分別是多少?
ArrayList 是線性表(陣列)get() 直接讀取第幾個下標,複雜度 O(1)add(E) 新增元素,直接在後面新增,複雜度O(1)add(index, E) 新增元素,在第幾個元素後面插入,後面的元素需要向後移動,複雜度O(n)remove()刪除元素,後面的元素需要
js寫css()方法,記得加引號“ ”,除非是數字
pos 引號 index size z-index roi absolut fff dex js寫css()方法,記得加引號“ ”,除非是數字。如: $("#android").css({ "position": "absolute", "z-index":
Java復制文件,可以直接調用renameTO()方法,不要用數據流啦
ati 清空 puts 文件復制 新建 name ioe release strong 我想達到的效果是,一個文件復制到另一個地方,然後重命名 //判斷是否存在 File file = new File("D:/tomcat9.0.12/apache-tomc
陣列遍歷及求和(C語言)
最近學習了C語言的入門,作為陣列的綜合練習,在此寫下相關經驗及程式碼。 題目:在一個長度為10的整型數組裡面,儲存了班級10個學生的考試成績。要求編寫5個函式,分別實現計算考試的總分,最高分,最低分,平均分和考試成績降序排序。 程式碼部分:#include <stdi
jQuery遍歷 filter()方法
this css turn 如果 order 內容 round ddl 元素 實例 改變所有 div 的顏色,然後向類名為 "middle" 的類添加邊框: $("div").css("background", "#c8ebcc") .filter(".middle")
jquery遍歷節點 children(),next(),prev(),siblings()closest()
向上 tail ram 遍歷 tar tab AD ldr jquer 方法方法描述 children() 獲取匹配元素的 子元素個數(只考慮 兒子 元素) next() 獲取 後面緊鄰的 同輩元素 prev() 獲取 前面 緊鄰的 同輩元素 sibl
Java 集合List及Map中forEach()方法
我們先看一個forEach()方法遍歷List集合的例子: //使用com.google.guava包建立集合 List<String> list =Lists.newArrayList("a","b","c","d");
個人js學習總結-陣列字串的轉換join()、split()
<script> //contat()用於連結兩個及以上陣列,但不改變現有的陣列,僅僅返回被連線陣列的一個副本 var arr01 = [1,2,3]; var arr02 = ["a","b","c"]; arr01.contat(arr02); //結果為[1
STL Vector remove()和erase()的使用
STL中remove()只是將待刪除元素之後的元素移動到vector的前端,而不是刪除。若要真正移除,需要搭配使用erase()。 例子如下: [cpp] view plain copy #include <iostream> #inclu
react 中為什麼在陣列遍歷時要給一個key值
this.state={ var arr = [ a , b , c , d ];}//元件中this.state.arr.map((item,index,arr)=>{
修改陣列相應位置元素——splice()
splice()——所有主流瀏覽器都支援 splice() 方法。 定義和用法 splice() 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。 注:該方法會改變原始陣列。不修改陣列的
在mySQl中,SQL語言允許使用萬用字元進行字串匹配的操作,其中“%”不能表示()。A.0個字元B.一個字元C.多個字元D.搜尋關鍵字中包含字元“%”
加粗樣式@TOC 歡迎使用Markdown編輯器 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。 新的改變 我們對Markdown編輯
Thread類的sleep()方法和物件的wait()方法都能使執行緒暫停執行,他們有什麼區別?
sleep()方法是執行緒類Thread的靜態方法,呼叫該方法使執行緒暫停執行指定的時間,將CPU讓給其他執行緒,並不釋放所持有的物件鎖,休眠時間結束後執行緒回到就緒狀態。 wait()是Object類的方法,呼叫wait()方法,執行緒釋放所持有的物件鎖,進入等待池中,只
java去重List的contains()方法
實踐過程中需要用到java中list去重,故打算採用contains()方法, 1.若為List<某類>則需在該類中重寫equals()方法,及hashCode()方法 2.具體重寫程式碼: package com.fit; import java.
jQuery---JQuery remove(),removeAttr()和removeClass()示例區別
JQuery remove()方法 remove()方法與detach()方法相同,它從DOM中刪除所選元素,包括所有文字和子節點。但是,它不會將與DOM中匹配的元素集合中的已刪除元素相關聯的所有資料和事件完全保留。它恢復元素資料,而不是其事件處理程式。與元素
List集合遍歷時修改元素出現併發修改異常總結
import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; /* * * * * Concurrent
陣列Array的toString()方法與a == 1 && a == 2 && a == 3
如何讓a == 1 && a == 2 && a == 3成立,首先想到的是陣列。我們知道當複雜型別資料與基本型別資料作比較時會發生隱性轉換,那麼,當a是一個數組時,a == 1,陣列a就會呼叫它的toString方法,而陣列的toString