4 回答

TA貢獻1799條經驗 獲得超8個贊
自從Java5中引入了foreach語句之后,在循環遍歷數組、集合方面帶來了極大的方便,但是在用foreach的時候也要注意其與for循環是不能完全劃等號的。
在使用foreach遍歷數組集合的過程中一定要注意不要修改其內容,在Java程序中會進行報錯,但是在有些時候沒有錯誤提示,就會造成花很多時間找不到問題所在。
foreach語句用于循環訪問集合以獲取所需信息,但不應用于更改集合內容以避免產生不可預知的副作用。
由于在遍歷map的過程中對集合內容進行了改變,所以會報ConcurrentModificationException異常錯誤。那如果在遍歷的過程中還想對集合內容進行修改怎么辦,那就只能用for循環,同時要注意游標指向集合中哪個元素,比如在上述代碼for循環中由于刪除了map2,刪除的同時游標已經指向了下一個元素map3,i++以后將會指向map4,因此如果想要輸出one three four的話就必須在remove之后進行i--。

TA貢獻2019條經驗 獲得超9個贊
<c:forEach var="o" items="${orders}" varStatus="st"> 當前迭代的元素:${o.ord_code} <!--迭代狀態的信息--> 當前迭代的元素:${st.current.ord_code} 當前迭代的索引:${st.index} 迭代計數:${st.count} 是否是第一次迭代:${st.first} 是否是最后次迭代:${st.last} </c:forEach>

TA貢獻1886條經驗 獲得超2個贊
//查詢的方法
//@RequestMapping("/out/toList")
// public ModelAndView toList(Map map){
// String hql=" from out_batchEntity ";
// List<out_batchEntity> list=this.baseEbi.query(hql, null, "batEnd desc");
// //給每個批次添加總數
// for(int i=0;i<list.size();i++){
// Set<BookListEntity> set=list.get(i).getBle();
// int count=0;
// for(BookListEntity bl:set){
// // count+=bl.getBkCount();
// }
// list.get(i).setBatCount(count);
// }
// map.put("list", list);
// return new ModelAndView("out/group/groupList",map);
// }
<c:forEach items="${list}" var="list" varStatus="s">
<tr>
<td>${s.index+1 }</td>
<td>${list.batName }</td>
<td>${list.batNumber }</td>
<td>${list.cmp.cyName }</td>
<td>${list.batCount}</td>
<td>${list.batStart }</td>
<td>${list.batEnd }</td>
<td><a href="#" id="bookstate">書籍狀態</a> <a href="#">修改</a> <a href="#">刪除</a> </td>
</tr>
</c:forEach>
感覺和你說的差不多你試試
添加回答
舉報