如何在遍历中使用list的删除函数

本文介绍了一种在C++中使用迭代器从列表(list)中删除特定元素的方法,通过比较每个元素的坐标来实现精确删除。

list无法根据关键字删除元素,只好在遍历中一项项比较

//根据点坐标在负表中删除点
	list<CMyPoint>::iterator it=m_myPointList.begin();
	for(;it!=m_myPointList.end();)
	{
		if((it->m_nX==pt.m_nX)&&(it->m_nY==pt.m_nY))
		{
			it=m_myPointList.erase(it);
		}
		else
		{
			it++;
		}
	}



在 Java 中,Lambda 表达式可以与集合的 `forEach()` 方法结合使用,以简洁的方式遍历 `List` 或其他集合类型。通过 Lambda 表达式,可以将遍历操作以函数式风格表达,使代码更加简洁和可读。 ### 使用 Lambda 表达式遍历 List 以下是一个使用 Lambda 表达式遍历 `List` 的示例代码: ```java import java.util.ArrayList; import java.util.List; public class LambdaForEachExample { public static void main(String[] args) { // 创建并初始化一个 List List<String> names = new ArrayList<>(); names.add("zhangsan"); names.add("lisi"); names.add("wangwu"); // 使用 Lambda 表达式和 forEach 遍历 List names.forEach(name -> System.out.println(name)); } } ``` ### Lambda 表达式说明 - `name -> System.out.println(name)` 是 Lambda 表达式的写法,表示一个匿名函数。 - `forEach()` 是 `Iterable` 接口定义的方法,它接受一个 `Consumer` 函数式接口作为参数,用于对集合中的每个元素执行操作[^2]。 ### 更复杂的 Lambda 表达式应用 还可以在 Lambda 表达式中编写更复杂的逻辑,例如: ```java names.forEach(name -> { if (name.startsWith("z")) { System.out.println("以 'z' 开头的名字: " + name); } else { System.out.println(name); } }); ``` 此代码块展示了如何在 Lambda 表达式中使用多行语句和条件逻辑,进一步增强了遍历操作的灵活性。 ### 总结 通过 `forEach()` 和 Lambda 表达式的结合,Java 提供了一种简洁且功能强大的方式来遍历集合,例如 `List`。这种方式不仅简化了代码,还提升了可读性和维护性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值