forjavaremove
❶ java中remove怎麼使用
1在對集合進行迭代的時候刪除其中的元素最好使用迭代器Iterator的remove方法進行刪除
Iterator
ite=list.iterator();
while(ite.hasNext()){
Object
o=ite.next();
if(/*
此處寫你希望滿足的刪除條件
*/)
ite.remove();
}
2
不能在對一個List進行遍歷的時候將其中的元素刪除掉解決辦法是你可以先將要刪除的元素用另一個list裝起來等遍歷結束再remove掉
List
delList
=
new
ArrayList();//用來裝需要刪除的元素
for(Information
ia:list)
if(ia.getId()==k){
n++;
delList.add(ia);
}
list.removeAll(delList);//遍歷完成後執行刪除
3
這里的for循環沒有涉及到迭代器,也就沒有對集合是否發生改變進行判斷,所以不會拋出異常
for(int
i=0;i<list.size();i++){
String
str=list.get(i);
if("bbb".equals(str)){
list.remove(str);
}
}
望採納
❷ java for 冒號 remove
這個問題關鍵在於obList是什麼類型的
舉個例子說吧
obList為int型數組,如下
int obList[] = {1, 2, 3, 4, 5, 6, 7, 8};
for(int ob:obList){
if(ob == 3){
obList.remove(ob);
}
}
obList為String的List,如下
List<String> obList= new ArrayList<String>();//泛型也可以是其他類型
obList.add("1");
obList.add("2");
obList.add("3");
obList.add("4");
for(String ob:obList){
int ob1 = Integer.parseInt(ob);
if(ob1 == 3){
obList.remove(ob1);
}
}
關鍵在於obList的類型,當然也可以使用其他類型,但是如果是if(ob == 3)這種判斷是要牽扯到強制轉換。
有什麼問題Hi我吧@~!good luck~!
❸ java中的「remove」怎樣使用
1在對集合進行迭代的時候刪除其中的元素最好使用迭代器Iterator的remove方法進行刪除
Iterator ite=list.iterator();
while(ite.hasNext()){
Object o=ite.next();
if(/*
此處寫你希望滿足的刪除條件
*/)
ite.remove();
}
2 不能在對一個List進行遍歷的時候將其中的元素刪除掉解決辦法是你可以先將要刪除的元素用另一個list裝起來等遍歷結束再remove掉
List delList = new ArrayList();//用來裝需要刪除的元素
for(Information ia:list)
if(ia.getId()==k){
n++;
delList.add(ia);
}
list.removeAll(delList);//遍歷完成後執行刪除
3 這里的for循環沒有涉及到迭代器,也就沒有對集合是否發生改變進行判斷,所以不會拋出異常
for(int i=0;i<list.size();i++){
String str=list.get(i);
if("bbb".equals(str)){
list.remove(str); }
}
望採納
❹ java中怎麼刪除數組中的元素
java中刪除數組中的元素方法:
我們可以使用Apache Commons Utils 這個庫的ArrayUtils類來輕易的刪除數組中的元素。不過有一點需要注意,數組是在大小是固定的,這意味這我們刪除元素後,並不會減少數組的大小。
所以,我們只能創建一個新的數組,然後使用System.arrayCopy()方法將剩下的元素拷貝到新的數組中。
對於對象數組,我們還可以將數組轉化為List,然後使用List提供的方法來刪除對象,然後再將List轉換為數組。
❺ java for循環生成的對象,如何批量刪除
從你給的代碼中可以看出,五次循環中,new出的對象都是賦值給了mod這個變數,結束循環,mod的值就是最後一次new出的對象,你通過mod自然只能刪除最後一個new出的對象,不管你調用mod.remove()多少次。
想要全部刪除,這就要看你是否有對「5次循環中前4次生成的那些對象」的引用,比如放在了一個數組或者容器中,如果有,就可以遍歷數組或者容器來刪除,否則你無法刪除,因為你都沒有對它們的引用。
如果還需幫助,你可以把全部的代碼粘貼出來看看~
❻ java 迭代器是如何進行remove 的,能否詳細的回答一下。
for each語句是由iterator實現的,正如你所說,他們的不同之處就在於remove()方法上。
一般調用刪除方法都是集合的方法,例如:
List list = new ArrayList();
list.add(...);
list.remove(...);
但是,如果在循環的過程中調用集合的remove()方法,就會導致循環出錯,例如:
for(int i=0;i<list.size();i++){
list.remove(...);
}
循環過程中list.size()的大小變化了,就導致了錯誤。
所以,如果你想在循環語句中刪除集合中的某個元素,就要用迭代器iterator的remove()方法,因為它的remove()方法不僅會刪除元素,還會維護一個標志,用來記錄目前是不是可刪除狀態,例如,你不能連續兩次調用它的remove()方法,調用之前至少有一次next()方法的調用。
如果你想了解的更透徹,可以查看一下原碼,看它是怎麼實現的。
因為for each語句是由iterator語句實現的,所以如果你在循環中刪除某個元素時,應該用iterator的remove()方法,可是這時你又沒有iterator對象,怎麼調用呢?
所以,這種情況下,一般還是用iterator來循環訪問,並篩選刪除。
說白了,for each就是為了讓用iterator循環訪問的形式看著更好看,寫起來更方便。但如有刪除操作,當然還是用它原來的形式了。
❼ java 迭代器是如何進行remove 的,能否詳細的回答一下。
for
each語句是由iterator實現的,正如你所說,他們的不同之處就在於remove()方法上。
一般調用刪除方法都是集合的方法,例如:
List
list
=
new
ArrayList();
list.add(...);
list.remove(...);
但是,如果在循環的過程中調用集合的remove()方法,就會導致循環出錯,例如:
for(int
i=0;i
評論
0
0
0
載入更多
❽ 為什麼java不要在foreach循環里進行元素的remove/add操作
foreach循環是建立在迭代器的基礎之上的,迭代器能夠有效工作的前提是集合內的元素保持不變,既不能增加也不能刪除,如果直接對集合進行增加和刪除,會導致迭代器中的內容與集合的內容產生差異,從而導致錯誤發生。
可以使用迭代器的remove,能夠保證正常工作。
如果存在疑問建議查看List類或者HashMap類的源碼。