设计一个方法,用于删除List<Integer>中大于10的元素

本文介绍了如何设计一个方法,该方法能够从ArrayList中有效地删除所有大于10的整数元素。示例展示了如何初始化一个包含1到10之间随机数的列表,并执行删除操作,将大于10的元素移除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计一个方法,用于删除List中大于10的元素

方法一:可以使用Iterator的remove方法,该方法会删除当前迭代对象的同时,维护索引的一致性。如:
public class ListTest { 
public static void main(String[] args) {
List<Integer> intList = new ArrayList<>();
Collections.addAll(intList, 112,1, 2, 3, 5, 6,23,33,221,7,9,8,4,0,10,45,42,3435);
Iterator<Integer> it = intList.iterator();
while(it.hasNext()){
    Integer value = it.next();;
    if(value >10){
        it.remove();
    }
}
     System.out.println(intList);
}
}


方法二:不使用迭代器的解决方案就是,自己维护索引,删除一个元素后,索引-1,如:
public class ListTest { 
public static void main(String[] args) {
List<Integer> intList = new ArrayList<>();
Collections.addAll(intList, 112,1, 2, 3, 5, 6,23,33,221,7,9,8,4,0,10,45,42,3435);
for(int i = 0; i < intList.size(); i++) {
    Integer value = intList.get(i);
    if(value > 10) {
        intList.remove(i);
        i--;
    }
}
     System.out.println(intList);
}
}


方法三:还有种取巧的方式是从最后一个元素开始遍历,符合条件的删除,如:
public class ListTest { 
public static void main(String[] args) {
List<Integer> intList = new ArrayList<>();
Collections.addAll(intList, 112,1, 2, 3, 5, 6,23,33,221,7,9,8,4,0,10,45,42,3435);
for(int i < intList.size()-1; i>=0; i--) {
    Integer value = intList.get(i);
    if(value > 10) {
        intList.remove(i);
    }
}
     System.out.println(intList);
}
}



程序创建一个ArrayList,添加1到10之间的10个随机数,然后删除大于5的元素

package test;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
 
public class CreateArrayList {
 
	public static void main(String[] args) {
		List<Integer> newList = create(10);
		System.out.println(Arrays.toString(newList.toArray()));
		List<Integer> deleteList = delete(newList,5);
		System.out.println(Arrays.toString(deleteList.toArray()));
	}
	
	public static List<Integer> create(int size){
		Random r = new Random();
		List<Integer> list = new ArrayList<>();
		for(int i=0;i<size;i++) {
			int temp = r.nextInt(size);
			list.add(temp);
		}
		return list;
	}
	public static List<Integer> delete(List<Integer> needList,int flagIndex){
		for(int i=0;i<needList.size();) {
			if(needList.get(i).intValue()<flagIndex) {
				needList.remove(i);
				i=0;
			}else {
				i++;
			}
		}
		return needList;
	}
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值