数据结构与算法
文章平均质量分 55
数据结构与算法,已java为主对数据结构的理解
黑小帅
这个作者很懒,什么都没留下…
展开
-
列表与树的处理
最近做一个功能需要将数据库的数据转换成树结构,可以转换成树的数据往往数据库里的表字段含有parent_id这种代表关系,突发奇想,做一个泛型的树工具类,以后遇到这种结构都可以直接转换成树使用。原创 2022-04-25 16:39:22 · 717 阅读 · 0 评论 -
Vector源码
Vector与ArrayList的底层都是由数组实现,必要时可扩容。都可以类比成一个大小可变的数组,因此可以根据下标查找值,非常高的效率。但是删除或者从中删除节点,需要对很多元素进行修改,效率不是很高。Vector与ArrayList不一样的地方就是Vector大多数的方法加有synchronized关键字,是线程安全的。原创 2021-12-27 19:11:14 · 658 阅读 · 0 评论 -
LinkedList源码阅读
LinkedList的底层是由链表实现,不需要扩容。根据下标查找值,要从头节点或尾节点迭代查找,效率较低。但是插入或者从中删除节点,不会像ArrayList有空间上的扩容和移动元素,效率较高。LinkedList线程不安全。原创 2021-12-21 19:20:03 · 244 阅读 · 0 评论 -
ArrayList源码解读
ArrayList的底层是由数组实现,必要时可通过扩容。可以类比ArrayList是一个大小可变的数组,因此可以根据下标查找值,非常高的效率。但是删除或者从中删除节点,需要对很多元素进行修改,效率不是很高。ArrayList线程不安全。原创 2021-12-17 18:27:49 · 110 阅读 · 0 评论 -
HashMap源码解读
HashMap源码解读HashMap属性://哈希表:可见HashMap底层是由链表数组实现的,实际上超过threshold,会转变成它的子类TreeNode(红黑树)transient Node<K,V>[] table;//<k,v>元素集合transient Set<Map.Entry<K,V>> entrySet;//hashMap元素个数transient int size;//修改数,遍历的时候作为判断是否在遍历时发生改变t原创 2021-12-14 19:10:42 · 175 阅读 · 0 评论