SegmentFault
25-09-09 12:32 微博认证:开发者社区 SegmentFault 思否官方微博

【为什么在循环中修改集合,会导致程序出错 】http://t.cn/AXvvkTae在循环遍历一个集合(如列表、数组)的过程中,直接对其进行添加或删除元素的操作,之所以会导致程序出错或产生非预期的结果,其根本原因在于这种修改行为,直接破坏了循环赖以正常工作的“迭代器”的内部状态或循环的“边界条件”。一个循环的执行,如同一个人,在参照一张地图进行按部就班的徒步旅行。如果在旅行途中,这张地图本身,被随意地修改(例如,擦掉了一个即将要访问的村庄,或在终点后又增加了一个新的村庄),那么,旅行者(即循环),就必然会“迷路”。

发布于 北京