数据结构分类: 1. 线性结构 0 至 1个直接q前继结点和直接后继 包括: 线性表、链表、栈、队列 2. 树结构 0 至 1个直接前继 和 0至n个直接后继 (n 大于或等于2) 3. 图结构 0 至 n个直接前继和直接后继 4. 哈希结构 没有直接前继和后继,哈希结构通过特定的哈希函数将索引与存储的值关联起来,查找效率 非常高效的数据结构 衡量算法的考量因素 如O(n^3) 表示程序执行时间随着输入规模呈现三次方倍的增长。 算法复杂度: 常数级O(1), 对数级O(logn) 线性级O(n) 线性对数级O(nlogn) 平方级O(n^2) 立方级O(n^3) 指数级O(2^n) Collection Java中的集合是存储对象的工具类容器,它实现了常用的数据结构,提供一系列的公开方法用于 新增、删除、修改、查找和遍历数据,降低了日常开发的成本。 List、Set、Map、 Queue List集合是线性数据结构的主要实现,List集合的遍历结果是稳定的,该体系最常用的是ArrayList和 LinkedList两个集合类 ArrayList集合是容器可以改变的非线程安全集合。内部实现使用数组进行存储,集合扩容时会创建更大 空间的数组,把原有数据复制到新数组中,ArrayList支持对元素的快速随机访问,但是插入和删除速度很慢。 LinkedList是双向链表。与ArrayList相比,它的插入和删除速度快,但随机访问速度慢 Queue集合 Queue队列是一种先进先出的数据机构,队列是一种特殊的线性表,它只允许在表的一端进行获取操作,在表 的另一端进行插入。当队列没有元素时称为空队列。 Map: 它是以Key-Value键值对作为存储元素实现的哈希结构,Key是按照某种哈希函数计算后的唯一值, value则是可以重复的 Map提供三种Collection视图 keySet() 查看所有的Key values() 查看所有的Value entrySet() 查看所有键值对 HashMap是线程不安全的,ConcurrentHashMap是线程安全的,在多线程环境下优先使用。 TreeMap是Key有序的Map类集合 Set集合 Set是不允许出现重复元素的数据集合类型,Set系列最常用的是HashSet、TreeSet和LinkedHashSet
Java集合相关概念
最新推荐文章于 2022-11-27 16:07:36 发布