List - 图1

数据结构的选用要有取舍

  • ArrayList#contains 是 O(n) 的时间复杂度,HashMap#get() 是 O(1) 的时间复杂度
  1. 性能要好,用后者代替前者
  2. 内存吃紧,用前者代替后者

LinkedList 很少用

  • 即使它的插入 O(1),但是查找到对应 node 花费的时间确实 O(n)