4 回答
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
自從Java5中引入了foreach語(yǔ)句之后,在循環(huán)遍歷數(shù)組、集合方面帶來(lái)了極大的方便,但是在用foreach的時(shí)候也要注意其與for循環(huán)是不能完全劃等號(hào)的。
在使用foreach遍歷數(shù)組集合的過(guò)程中一定要注意不要修改其內(nèi)容,在Java程序中會(huì)進(jìn)行報(bào)錯(cuò),但是在有些時(shí)候沒有錯(cuò)誤提示,就會(huì)造成花很多時(shí)間找不到問(wèn)題所在。
foreach語(yǔ)句用于循環(huán)訪問(wèn)集合以獲取所需信息,但不應(yīng)用于更改集合內(nèi)容以避免產(chǎn)生不可預(yù)知的副作用。
由于在遍歷map的過(guò)程中對(duì)集合內(nèi)容進(jìn)行了改變,所以會(huì)報(bào)ConcurrentModificationException異常錯(cuò)誤。那如果在遍歷的過(guò)程中還想對(duì)集合內(nèi)容進(jìn)行修改怎么辦,那就只能用for循環(huán),同時(shí)要注意游標(biāo)指向集合中哪個(gè)元素,比如在上述代碼for循環(huán)中由于刪除了map2,刪除的同時(shí)游標(biāo)已經(jīng)指向了下一個(gè)元素map3,i++以后將會(huì)指向map4,因此如果想要輸出one three four的話就必須在remove之后進(jìn)行i--。
TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
<c:forEach var="o" items="${orders}" varStatus="st"> 當(dāng)前迭代的元素:${o.ord_code} <!--迭代狀態(tài)的信息--> 當(dāng)前迭代的元素:${st.current.ord_code} 當(dāng)前迭代的索引:${st.index} 迭代計(jì)數(shù):${st.count} 是否是第一次迭代:${st.first} 是否是最后次迭代:${st.last} </c:forEach>
TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
//查詢的方法
//@RequestMapping("/out/toList")
// public ModelAndView toList(Map map){
// String hql=" from out_batchEntity ";
// List<out_batchEntity> list=this.baseEbi.query(hql, null, "batEnd desc");
// //給每個(gè)批次添加總數(shù)
// 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">書籍狀態(tài)</a> <a href="#">修改</a> <a href="#">刪除</a> </td>
</tr>
</c:forEach>
感覺和你說(shuō)的差不多你試試
添加回答
舉報(bào)
