博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
List集合的重点与面试考察点
阅读量:2056 次
发布时间:2019-04-28

本文共 643 字,大约阅读时间需要 2 分钟。

一、Collection接口

(1)Collection是集合的顶级接口。Collections是Collection的包装器。是在 collection 上进行操作或返回 collection 的静态方法组成。

(2)List Set Queue接口的父类是Collection

二、ArrayList

  1. ArrayList特点:底层使用的是数组结构
  2. 增删效率低 查询效率高 线程不安全的异步集合
  3. ArrayList内存是连续的
  4. ArrayList默认初始容量为10
  5. ArrayList的有参构造可以指定初始容量。
  6. ArrayList 1.8 扩容:原来的长度+ 原来的长度的一半

三、LinkedList

  1. 链表不需要初始容量,链表中的每一个元素称之为结点。链表中包含头结点和尾结点。
  2. 每一个结点中包含数据、上一个结点地址和下一个结点的地址。头结点的prev是null,尾结点的next是null。这种链表称之为双向链表。
  3. 链表的内存是不连续的
  4. 链表查询效率低、增删效率高,是一个线程不安全的集合。

例题1:如果在某一个场景下,查询和增删的效率差不多。那么优先选择ArrayList还是LinkedList?

应该选择LinkedList,因为它内存不连续

四、Vector

  1. Vector底层使用数组结构
  2. 查询效率高、增删效率低,线程安全的集合
  3. Vector默认初始容量为10,向量增量为0.
  4. 默认每次扩容是原来容量的一倍。如果向量增量不为0,那么每次扩容是原来容量+向量增量。

 

转载地址:http://nddlf.baihongyu.com/

你可能感兴趣的文章
解决 Kubernetes 部署 Metrics Server 无法访问 Apiserver 问题
查看>>
AWS 容器三大新品:K8s 发行版,免费镜像库和 “Game Changer”AWS Proton
查看>>
多平台容器镜像构建就看这一篇
查看>>
macOS Big Sur 使用全新虚拟化框架创建超轻量虚拟机!
查看>>
16 岁高中生成功在 iPhone 7 上安装 Ubuntu 20.04 桌面!
查看>>
两个程序都要用同一个端口,怎么解?
查看>>
有了这款图形管理界面,一分钟内配置 10 个 WireGuard 客户端不是梦
查看>>
Containerd镜像lazy-pulling解读
查看>>
Grafana 教程 - 构建你的第一个仪表盘
查看>>
由 OOM 引发的 ext4 文件系统卡死
查看>>
什么?WireGuard 可以让躲在 NAT 后面的客户端之间直连了??
查看>>
k8s集群内的节点,可能没你想象的那么健壮!(磁盘管理篇)
查看>>
利用 ebpf sockmap/redirection 提升 socket 性能(2020)
查看>>
春节前最后一波福利,Alibaba Java 训练营]5天突破面向对象编程限时免费报名!...
查看>>
我就要在容器里写文件!?
查看>>
支付宝集五福最全攻略,五分钟集齐五福!
查看>>
Runc 容器初始化和容器逃逸
查看>>
使用 GDB + Qemu 调试 Linux 内核
查看>>
介绍一个小工具:SSL-exporter
查看>>
深入理解 tc ebpf 的 direct-action (da) 模式(2020)
查看>>