看到一道題關於list迭代器的題:
list k =
newarraylist
<
>()
;k.add(
"lab1 ends");
irerator it = k.
iterator()
;system.out.
println
(it.
hasnext()
);it.next()
;system.out.
println
(it.
hasnext()
);k.remove(0
);system.out.
println
(it.
hasnext()
);
問控制台列印什麼
結果是
對於最後乙個為什麼列印true有點疑惑
去查了查大佬們的講list迭代器實現的部落格
發現它實現中有乙個屬性cursor指現在迭代器遍歷到的位置的下乙個
而迭代器hasnext()實現為
//private class
public boolean hasnext()
就是拿cursor和集合的size比較,不相同就說明未訪問到最後乙個元素,返回true。
在上述例子中執行it.next()之後,cursor應該指向遍歷到位置的下乙個也就是cursor=1。當執行k.remove(0)之後,size() 的結果應該變成了0,此時cursor!=size(),所以返回值為true
一道小題 整數反轉
這是一道再水不過的題。但是這道題其實會引起一些思考的 這道題解法一定很多 初見這道題時,大多數人想的思路應該就是直接暴力 數字轉字串。但是這樣未免太低階了。在高階點就是,反轉其實可以用棧。一步一步用vector 推進去 或者用棧推進去然後輸出就行了 中間要判斷是否溢位,還有0和負號的一些處理 但是還...
java 與 一道小題引發的思考
第一眼看這個題,以為會編譯不通過,結果正確答案會輸出 true。ps 是乙個賦值運算子,賦給某個變數乙個具體的值。是乙個比較運算子 1 基本型和基本型進行 運算子的比較,直接比較兩個值 2 基本型和封裝型進行 運算子的比較,封裝型將會自動拆箱變為基本型後再進行比較 3 封裝型和封裝型進行 運算子的比...
初次見面!雙指標(小題一道)
初次遇見雙指標的題是在一次小測試時,那時它擁有這樣的外衣 題目 給乙個int 型陣列無序,從陣列中選出兩數字,使得這兩數字之和為 target 將這兩數字的下標作為陣列返回。一定存在乙個解 注意 對 進行優化 可能會超時。given nums 2,7,11,15 target 9,because n...