前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >线性存储

线性存储

作者头像
Qwe7
发布2022-08-05 21:53:15
1410
发布2022-08-05 21:53:15
举报
文章被收录于专栏:网络收集网络收集

线性存储

ArrayList 类

【数组序列】实现了 List 接口,内部使用 Object 数组存储:

  1. 可以高效地按索引进行元素修改和查询。
  2. 添加元素时动态扩容:当容量满后,ArrayList 类会新建一个 1.5 倍容量的新数组,然后将当前数组数据全部复制过去。

ArrayList 构造方法

代码语言:javascript
复制
List<Integer> list = new ArrayList<>();              // 默认初始容量为 10
List<Integer> list = new ArrayList<>(100);           // 自定义初始容量
List<Integer> list = new ArrayList<>(queue);         // 构造时直接复制其他容器元素(可以是任何 Collection 类)

List list = new ArrayList();                         // 未指定元素类型则为 Object 类Copy to clipboardErrorCopied

LinkedList 类

【链表序列】实现了 List 和 Deque 接口。内部使用双向链表存储:

  1. 可以高效地进行元素插入和删除。
  2. 容量无限。

LinkedList 构造方法

代码语言:javascript
复制
List<String> list = new LinkedList<>();              // 创建空对象
List<String> list = new LinkedList<>(queue);         // 复制其他容器元素Copy to clipboardErrorCopied

ArrayDeque 类

【数组双端队列】实现了 Deque 接口。内部使用 Object 数组存储(不允许存储 null 值):

  1. 可以高效进行元素查找和尾部插入取出,是用作队列、双端队列、栈甚至递归树的绝佳选择。
  2. 添加元素时动态扩容:当容量满后,ArrayDeque 类会新建一个 1.5 倍容量的新数组,然后将当前数组数据全部复制过去。

ArrayDeque 构造方法

代码语言:javascript
复制
ArrayDeque<String> queue = new ArrayDeque<>();              // 创建空对象
ArrayDeque<String> queue = new ArrayDeque<>(list);          // 复制其他容器元素Copy to clipboardErrorCopied

PriorityQueue 类

【无界优先级队列】实现了 Queue 接口。内部使用 Object 数组存储(不允许存储 null 值):

  1. PriorityQueue 类内会自动对元素进行排序,是作为堆的绝佳选择。但实际在数组中并不是有序存储,而只保证队首元素是最小值:每次弹出队首元素后会自动查找剩余队列中的最小元素放到队首。
  2. 添加元素时动态扩容:当容量满后,PriorityQueue 类会新建一个 1.5 倍容量的新数组,然后将当前数组数据全部复制过去。

PriorityQueue 构造方法

开发者在构造队列时可通过重写 compare 方法自定义排序规则。如果存储未重写 compareTo 方法的自定义对象,则必须重写 compare 方法。

代码语言:javascript
复制
// 默认排序方法
PriorityQueue<Integer> queue = new PriorityQueue<Integer>();

// 自定义排序方法(Lambda 表达式)
PriorityQueue<Student> queue = new PriorityQueue<Student>((s1, s2) -> {
    if(s1.getScore() == s2.getScore()){
        return s1.getName().compareTo(s2.getName());
    }
    return s1.getScore() - s2.getScore();
});

本文系转载,前往查看

如有侵权,请联系?cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系?cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 线性存储
    • ArrayList 类
      • LinkedList 类
        • ArrayDeque 类
          • PriorityQueue 类
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
          http://www.vxiaotou.com