导航:首页 > 编程语言 > 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