parameters:
returns:
arraylist 的 sublist 結果不可強轉成 arraylist,否則會丟擲 classcastexception 異常:
public static void test7()
分析:
sublist 繼承 abstractlist ,所以具有list介面的所有方法。
sublist 是arraylist 的乙個內部類。sublist並沒有重新建立乙個list,而是直接引用原有的list,只不過對原來list做擷取而已。
arraylist 也是繼承abstractlist,但是 sublist 和 arraylist 沒有繼承關係,所以不能強轉換。
在 sublist 場景中,高度注意對原集合元素的增加或刪除,均會導致子列表的遍歷、增加、刪除產生 concurrentmodificationexception 異常。
public static void test8()
分析:
1)呼叫sublist方法返回的集合儲存了arraylist的modcount
2)當對原list進行add/remove時,導致modcount++;
3)訪問子集合時,加了checkforcomodification();校驗
我們來看一段**
public static void test9()
執行正常,分析:
sublist返回的集合在呼叫add/remove方法時,會將modcount進行更新。注:更新操作只更新原集合,因為sublist不會重新建立新集合。
總結:
1、sublist 返回的是 arraylist 的內部類 sublist,並不是 arraylist 而是 arraylist 的乙個檢視,對於 sublist 子列表的所有操作最終會反映到原列表上。
2、在 sublist 場景中,高度注意對原集合元素的增加或刪除,均會導致子列表的遍歷、增加、刪除產生 concurrentmodificationexception 異常。
Linux 中su 與su 的區別
linux 中切換使用者的命令是 su 或 su su命令和 su 命令最大的本質區別就是 前者只切換了root身份 但是shell環境仍然是普通使用者的shell 而後者是連使用者和shell 環境一起切換成了root 身份了 只有切換了shell環境才不會出現path環境變數錯誤 su切換成ro...
Linux 中su 與su 的區別
linux 中su 與su 的區別 一 區別 linux 中切換使用者的命令是 su 或 su su命令和 su 命令最大的本質區別就是 前者只切換了root身份 但是shell環境仍然是普通使用者的shell 而後者是連使用者和shell 環境一起切換成了root 身份了 只有切換了shell環境...
linux中su與su 命令的區別
linux中su與su 命令的區別 在我的fc6系統下用普通使用者登入,然後用su命令切換到超級使用者,再輸入ifconfig命令,報錯 command not find。而如果用su 命令切換到超級使用者,再輸入ifconfig命令則能成功執行。這其中涉及的就是su命令與su 命令的區別,man ...