ArrayList 很好用,但 LinkedList 并不是它的自然升级版
· 阅读需 2 分钟
Java 集合一学到 ArrayList 和 LinkedList,很多人就会形成一个很顺手的印象:前者适合查,后者适合增删,于是当某段代码出现“可能会插入删除”的需求时,就很自然地想把 LinkedList 搬出来。可真到业务代码里,这个选择远没有口诀那么简单。
Java 集合一学到 ArrayList 和 LinkedList,很多人就会形成一个很顺手的印象:前者适合查,后者适合增删,于是当某段代码出现“可能会插入删除”的需求时,就很自然地想把 LinkedList 搬出来。可真到业务代码里,这个选择远没有口诀那么简单。
Java 集合遍历删除这个问题,很多人都知道有坑。
可真正麻烦的地方在于,它不是每次都立刻用最醒目的方式出错。有些代码在某个数据量、某种路径下能跑,看起来像是可用的,结果一换场景就开始报错或者漏删,这种“看起来能跑”的状态反而最危险。
很多人学 Java 时,最先熟悉的就是 String、ArrayList、HashMap 这些基础类。也正因为太熟了,项目里反而经常是在它们身上出问题。不是因为类本身复杂,而是因为大家太容易“顺手就用”,很少停下来想当前场景到底合不合适。