java之集合框架简介说明
下文笔者讲述java中集合框架的简介说明,如下所示
Java核心集合框架简介说明
Java集合框架核心接口 是java.util.Collection和java.util.Map 每种集合框架又是基于底层数据结构的不同,拥有不通特性
Collection接口下常见的实现类
Collection下接口list、Set和Queue List特性: 有序,可重复 常见实现类: ArrayList array代表底层用的数组数据结构 按下标存储,所有是有序的 存储顺序和查询出的顺序一致 查询效率为O(1) 例: List<Integer> list = new ArrayList<>(); list.add(30); list.add(20); list.add(10); System.out.println(list); 输出;[30, 20, 10] linkedlist linked:底层的实现是采用链表 是有序 有序链表不连续特性 所有无法通过下标查询 查询效率有O(n) Set特性: 集合特性为无序 不重复(hash 和 tree 的数据结构特性都会导致其无序) 实现类: HashSet hash 代表是hash表数据结构 采用对象的hashcode取模为下标存储 由于对象hashcode不定,所以取模也不一定,导致无序 例 HashSet<Integer> integers = new HashSet<>(); integers.add(30); integers.add(20); integers.add(10); System.out.println(integers); 输出 [10, 20, 30] TreeSet : tree指底层是二叉树(红黑树 它提供了有序的集合)可以排序 (正序或倒叙,默认从小到大)所以也是无序的 存储10,30,20 取出来是10,20,30 TreeSet<Integer> set = new TreeSet<>(); set.add(30); set.add(10); set.add(20); System.out.println(set); // 输出: [10, 20, 30]
Queue特性: 队列 实现类: priorityqueue 优先队列,底层是堆(二叉树一种) (堆分为大顶堆和小顶堆(最大最小总是在第一个)) 所以也是无序 deque 双端队列 是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出 常用方法: 新建一个双端队列:Deque deque = new LinkedList(); 判断是否为空: deque.isEmpty() 增:deque.offerFirst(), deque.offerLast();//从头添加和尾部添加 删:deque.pollFirst(), deque.pollLast()//从头添加和尾部出队 查:deque.peekFirst(), deque.peekLast()//查看头添加和尾部元素 Map (k,v)键值对 实现类: hashmap hash底层为hash表数据结构 以对象的hashcode取模为下标存储在(数组,链表,红黑树),也是属于无序存储 hashtable(对hashmap 加锁) treeMap tree底层为二叉树(二叉搜索树 红黑树) map代表映射(k,value) 所以key必然是可以排序
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。