ArrayList和LinkedList的区别

  • ArrayList是动态数组,连续空间存储,适合下标访问,随机访问
    • 扩容机制:
    • 初始化数组时,长度默认为10,在插入第一个元素时,长度扩容到10
    • 超出数组长度后,创建新数组并将旧数组拷贝到新数组中
  • LinkedList是链表结构,可以存储在分散的内存中,适合做数据插入及删除操作
    • 不适于查询,需要逐一遍历
    • 可以实现双端队列、队列、栈
  • Array在使用尾插法并指定初始化容量时,能提高性能

    • 甚至超过LinkedList(需要创建大量node对象)

      == 和 equals的区别

  • ==

    • 的对比栈中的值、基础数据类型是变量值、引用类型 是堆中的内存对象地址
  • equals
    • object中默认是==比较,通常会重写