当前位置: 首页 > news >正文

Java一揽子集合整理

Java 集合框架

List

ArrayList,底层Object数组,相关方法add,remove

Vector,底层Object数组,线程安全,使用 synchronized 关键字进行同步处理

Stack,继承自Vector,是一个后进先出的栈,使用 synchronized 关键字进行同步处理,相关方法push,pop,peek

LinkedList,底层双向链表

Set

HashSet,基于HashMap实现,底层采用 HashMap来保存元素

LinkedHashSet,基于LinkedHashMap实现

TreeSet,有序,唯一,基于红黑树

Queue

Queue,单端队列,插入队尾,add/offer,删除队首remove/poll,获取队首element(),peek()

Deque,双端队列,addFirst/offerFirst,remove/poll,get/peek,push/pop模拟栈。

PriorityQueue,优先队列,Object数组实现小顶堆

eg:自定义排序实现最大/最小堆

PriorityQueue<int[]> maxHeap = new PriorityQueue<int[]>(new Comparator<int[]>(){
            public int compare(int[] pair1, int[] pair2) {
                return pair1[0] != pair2[0] ? pair2[0] - pair1[0] : pair2[1] - pair1[1];
            }
        });

DelayQueue:PriorityQueue

ArrayDeque:可扩容动态双向数组

Map

HashMap,数组+链表,1.8后链表改为红黑树(数组长度大于64,链表长度大于8)

LinkedHashMap,在HashMap的基础上,增加了一条双向链表

HashTable,数组+链表,线程安全,Synchronized保证

TreeMap,红黑树

ConcurrentHashMap,线程安全,1.7之前segment数组+链表,1.8之后node数组+红黑树

相关文章:

  • 网页制作09-html,css,javascript初认识のhtml如何使用表单
  • 数据安全管理的AI工具有哪些?
  • [LeetCode]day29 232.用栈实现队列
  • ZT16 小欧的括号嵌套
  • Linux网络之传输层协议(UDP,TCP协议)
  • 【转】Python for Data Analysis第二版【中文版】-第三章
  • 24.[前端开发-JavaScript基础]Day01-插件配置-变量-数据
  • React低代码项目:Redux 状态管理
  • Redis|复制 REPLICA
  • Rust学习总结之-枚举
  • 半导体晶圆精控:ethercat转profient网关数据提升制造精度
  • 2024中国信通院“集智”蓝皮书合集(附下载)
  • Windows-内核
  • 解决免费 PDF 发票打印痛点的实用工具
  • 回调函数的用法
  • AI大模型-提示工程学习笔记19-自我反思
  • HBuilder X安装教程(2025版)
  • C++ ⾼性能内存池
  • Spring 创建对象的流程
  • Rk3568驱动开发_点亮led灯(手动挡)_5
  • 遍体鳞伤就是击不倒,这是国米老男孩最后的倔强
  • 湖南新宁一矿厂排水管破裂,尾砂及积水泄漏至河流,当地回应
  • 贵州锦屏县委原书记舒健已任黔东南州政府办主任
  • 上海:以税务支持鼓励探索更多的创新,助力企业出海
  • 滨江集团:一季度营收225.07亿元,净利润9.75亿元
  • 万科:一季度营收近380亿元,销售回款率超100%