導航:首頁 > 編程語言 > java遍歷list並刪除

java遍歷list並刪除

發布時間:2023-05-03 05:13:52

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)
();
}

Ⅱ java中list的遍歷有幾種方式

1.使用索引(index)來遍歷List
2.使用Iterator來遍歷List。(for-each其實也是利用Iterator)
注意:如果僅僅是遍歷,那麼可以可以使用索引或Iterator來遍歷。但是,如果你在遍歷的同時還要刪除元素,則最好使用Iterator來遍歷和刪除元素,這樣可以避免異常。

Ⅲ JAVA中LISt遍歷時如何remove元素

public
class
RemoveElementDemo
{
public
static
void
main(String[]
args)
{
List<String>
list
=
new
ArrayList<消裂>();
list.add("100012011");
list.add("10001201s1");
list.add("10001201s1");
//中畢解決方案:
//1.i--操作
/*for(int
i
=
0;i
<
list.size();i++){
String
b
=
list.get(i);
if(b.equals("502323232")){
list.remove(i);
i--;
}
}*/
//2.反向遍歷
/*for(int
i
=
list.size()
-
1;i
>=
0;i--){
String
b
=
list.get(i);
if(b.equals("502323232")){
list.remove(i);
}
}*/
//解決方案:調用Iterator的remove()方法安全刪除元素,避免異常
Iterator<String>
iter
=
list.iterator();
while(iter.hasNext()){
String
b
=
iter.next();
if(b.equals("100012011"賣橋芹)){
iter.remove();
}
}
for(String
b
:
list){
System.out.println(b);
}
}
}

Ⅳ 在for循環里遍歷list,然後刪除元素會怎樣

從list中刪除指定元素可中備以使用remove方法來實現:

ArrayList al = new ArrayList();

al.add("a");

al.add("b");

//al.add("b");

//al.add("c");

//al.add("d");

for (int i = 0; i < al.size(); i++) {

if (al.get(i) == "b") {

al.remove(i);

i--;

}

}

在代碼中,刪除元素後,需要把下標減一。這是因為在每次刪除元素後,ArrayList會將後面部分的元素依次往上挪一個位置(就是),所以,下一輪培缺個需要訪問的下標還是當前下標,所以臘辯必須得減一才能把所有元素都遍歷完。

Ⅳ java 怎麼刪除List中的指定元素

主要有三種方法:

  1. 用一個List 記錄要刪除的數據猛閉,最後removeAll(List);梁知李

Ⅵ java遍歷list 並刪除相同值對象

用一個for循環遍歷List時,不能刪除其中的元素。

用Iterator操作即可。

還有 Pro類要重寫一下 toString方法。這樣System.out.println里才能列印出來。

import java.util.*;

public class ListTest {
public static void main(String[] args) {

List<Pro> list = new ArrayList();
Pro p1 = new Pro("1000","1000");
Pro p2 = new Pro("1001","1002");
Pro p3 = new Pro("1003","1004");
Pro p4 = new Pro("1005","1006");
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);

for (Iterator<Pro> i = list.iterator(); i.hasNext();) {
Pro o = i.next();
if(o.getProid().equals(o.getProName())){
i.remove();
}
}
System.out.println(list);
}
}

class Pro{
private String proid;
private String proName;

public String getProid() {
return proid;
}
public void setProid(String proid) {
this.proid = proid;
}
public String getProName() {
return proName;
}
public void setProName(String proName) {
this.proName = proName;
}
public Pro(String proid, String proName) {
super();
this.proid = proid;
this.proName = proName;
}
public Pro() {
}

public String toString() {
return proid + ":" + proName;
}
}

Ⅶ 如何從Java List中取出前100的數據並且刪除掉

java List中取出前100的數據並且刪除掉,遍歷list集合,把數據取出存到新集合,再刪除掉,如下方法:

packagecom.test;

importjava.util.ArrayList;

importjava.util.List;

publicclassTestA{

publicstaticvoidmain(String[]args){

//定義集合

List<String>list=newArrayList<String>();

//給集合存150個值

for(intx=1;x<=101;x++){

list.add("a"+x);

}

System.out.println("原集合內容:"+list);

List<String>list2=newArrayList<String>();

//循環獲取和移除掉100值

for(intx=0;x<1;x++){

//獲取

Stringa=list.get(x);

list2.add(a);

//移除

list.remove(a);

//list2集合夠100則跳出循環

if(list2.size()==100){

break;}

//移除掉list集合一個元素,長度減一,標量應該不變所以減一,後面會x++

x--;}

System.out.println("取出的100值:"+list2);

//輸出剩下的值

System.out.println("剩下的list值:"+list);}

閱讀全文

與java遍歷list並刪除相關的資料

熱點內容
微信聊天界面源碼 瀏覽:24
seo競價推廣點擊價格演算法公式 瀏覽:319
框架結構可以加密嗎 瀏覽:218
python編譯器怎麼清除 瀏覽:73
linux全局socks代理 瀏覽:611
php微信抽獎 瀏覽:771
壓縮演算法嵌入式移植 瀏覽:531
php新手小例子 瀏覽:233
按照醫生的演算法一周是幾天 瀏覽:805
三次b樣條曲線演算法 瀏覽:924
java7特性 瀏覽:555
愛山東app小學報名怎麼知道報沒報上 瀏覽:458
android獲取wifi信號 瀏覽:133
娜拉美妝app怎麼使用 瀏覽:760
有了源碼要買伺服器嗎 瀏覽:365
app怎麼查看自己的存款利息 瀏覽:515
碧藍安卓與b站有什麼區別 瀏覽:342
php靜態塊 瀏覽:719
ftpmget命令 瀏覽:475
源碼時代怎樣 瀏覽:415