⑴ java中list集合用foreach輸出
List集合中存儲的是Object類型的對象,而非直接的String類型。因此,在使用foreach遍歷List時,不能直接將List的元素類型聲明為String,而應保持為Object類型。例如:
List<Object> list = new ArrayList<Object>();
list.add("asd");
list.add("sad");
list.add("sad");
for(Object s : list) {
System.out.println(s);
}
在上述代碼中,我們首先創建了一個Object類型的List集合,並添加了三個String類型的字元串。然後,我們使用foreach循環遍歷這個List,並將每個元素作為Object類型處理,最後通過System.out.println()輸出每個元素。
如果嘗試將List的元素類型聲明為String,如以下代碼所示:
List<String> list = new ArrayList<String>();
list.add("asd");
list.add("sad");
list.add("sad");
for(String s : list) {
System.out.println(s);
}
雖然編譯器不會報錯,但實際上這並不會解決問題。因為在這種情況下,編譯器會在編譯時進行類型檢查,但運行時仍會將List中的Object類型元素強制轉換為String類型。這可能導致運行時異常,特別是在List中存儲的元素並非都是String類型時。
因此,在使用foreach遍歷List時,請確保List的元素類型與循環中的變數類型一致,以避免潛在的運行時問題。
⑵ java中foreach的用法
Java中foreach的用法如下:
基本語法:for { // 引用元素變數value的Java語句 }。這種語法結構用於遍歷數組或集合中的每一個元素。
優勢:
適用場景:
局限性:
結合泛型:在使用foreach時,可以結合泛型來進一步提升代碼的類型安全性。
總結:foreach是Java中一種強大的遍歷工具,尤其適用於常規遍歷場景。然而,在處理索引相關的操作時,需要謹慎使用或切換到傳統的for循環。
⑶ java中 foreach 和迭代器在遍歷 List 集合 一些情況下為什麼能使用集合自動的刪除方法刪除元素
你a<70的時候是倒數第二位,也就是66,沒有拋出異常是因為之前list大小為5,你刪除66後,list大小為4,你第一次遍歷list大小為5的數組的時候,66的cursor在index = 4,當你刪除後,遍歷list大小為4的數組時, cursor = 4 = newlist.size()。
ArrayList里的這個方法就會判斷list已經讀取完畢了,所以不會拋出異常。
publicbooleanhasNext(){
returncursor!=size;
}
a < 90的時候在第二位就發生了變化,list的大小也發生了變化
看了下ArrayList的源碼,每次循環的時候都會call這個方法檢查list的大小是否發生了變化,但是這個方法是發生在hasNext方法之後的
(){
if(modCount!=expectedModCount)
();
}