經(jīng)常我們要?jiǎng)h除集合中的某些元素 有些可能會(huì)這么寫(xiě)
創(chuàng)新互聯(lián)公司專注于中大型企業(yè)的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作和網(wǎng)站改版、網(wǎng)站營(yíng)銷(xiāo)服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開(kāi)發(fā)的融合,累計(jì)客戶上千余家,服務(wù)滿意度達(dá)97%。幫助廣大客戶順利對(duì)接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專注品牌網(wǎng)站制作和互聯(lián)網(wǎng)程序開(kāi)發(fā),在前進(jìn)的路上,與客戶一起成長(zhǎng)!
復(fù)制代碼 代碼如下: public void operate(List list){ for (Iterator it = list iterator(); it hasNext();) { String str = (String)it next(); if (str equals("chengang")){ list remove(str); } } }
這種寫(xiě)法一運(yùn)行就會(huì)報(bào)如下異常
Exception in thread "main" java util ConcurrentModificationException at java util AbstractList$Itr checkForComodification(AbstractList java: )
因?yàn)閘ist在循環(huán)中的時(shí)候是不可以刪除它的元素的 后來(lái)我是這樣做的 一種很笨的方法 思路是這樣的 創(chuàng)建一個(gè)List專門(mén)存放要被刪除的元素 循環(huán)過(guò)后 用List removeAll方法把元素刪除 代碼如下
復(fù)制代碼 代碼如下: public void operate(List list){ List removeList= new ArrayList(); for (Iterator it = list iterator(); it hasNext();) { String str = (String)it next(); if (str equals("chengang")){ removeList add(str); } } list removeAll(removeList); }
這樣也確實(shí)可以解決問(wèn)題了 但是方法實(shí)在太笨重 其實(shí)可以有更簡(jiǎn)單的更高效的方法 就是用Iterator remove方法 如下
復(fù)制代碼 代碼如下: for (Iterator it = list iterator(); it hasNext();) { String str = (String)it next(); if (str equals("chengang")){ it remove(); } } ? lishixinzhi/Article/program/Java/JSP/201311/19832
1、 盡量指定類的final修飾符 帶有final修飾符的類是不可派生的。
在Java核心API中,有許多應(yīng)用final的例子,例如java.lang.String。為String類指定final防止了人們覆蓋length()方法。另外,如果指定一個(gè)類為final,則該類所有的方法都是final。Java編譯器會(huì)尋找機(jī)會(huì)內(nèi)聯(lián)(inline)所有的final方法(這和具體的編譯器實(shí)現(xiàn)有關(guān))。此舉能夠使性能平均提高50% 。更多Java學(xué)習(xí)進(jìn)階教程薇老師:hua2021ei
2、 盡量重用對(duì)象。
特別是String 對(duì)象的使用中,出現(xiàn)字符串連接情況時(shí)應(yīng)用StringBuffer 代替。由于系統(tǒng)不僅要花時(shí)間生成對(duì)象,以后可能還需花時(shí)間對(duì)這些對(duì)象進(jìn)行垃圾回收和處理。因此,生成過(guò)多的對(duì)象將會(huì)給程序的性能帶來(lái)很大的影響。
FIle file = new File("/image/123.jpg");
if (file.exists()){
file.delete();
}
使用File對(duì)象操作刪除,會(huì)判斷是否存在,如存在就刪了。
如果想找路徑,使用File類的getAbsolutePath()方/法就能得到/絕/對(duì)/路/徑/的字符串表示。
例如上面的對(duì)、象file,使用
String str = file.getAbsolutePath();
System.out.println(str);
你在/控/制/臺(tái)co/ns/ole/窗口就能看到了。
同意用存儲(chǔ)過(guò)程。用存儲(chǔ)過(guò)程的時(shí)候,你可以定義Handler,可以根據(jù)SQLSTATE來(lái)判斷,如果發(fā)現(xiàn)刪除失敗,而且是由于外鍵引起的(有對(duì)應(yīng)的SQLSTATE代碼的,不同sql方言可能不同),那么就不能刪除。可以返回錯(cuò)誤代碼
另外,JAVA里面,其實(shí)你只要catch到sqlexception,管它是什么錯(cuò)誤呢?如果SQLEXCEPTION發(fā)生(1是SQL系統(tǒng)掛了,你的例子中2 是由于刪除失?。ㄍ怄I)。不管什么情況,都表征失敗了。不就可以了?
根據(jù)ER圖來(lái)判斷是否有外鍵,這樣可行嗎?
這樣JAVA代碼就要依靠ER圖了,實(shí)際開(kāi)發(fā)中,這種后期維護(hù)挺不容易的。盡量要避免這種代碼依賴。
文章名稱:在java中刪除代碼 java刪除商品代碼
路徑分享:http://www.rwnh.cn/article10/ddgojgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、ChatGPT、建站公司、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)