JavaShuo
栏目
标签
JAVA面试——数据结构&算法
时间 2019-11-13
标签
java
面试
数据
结构
算法
栏目
Java
繁體版
原文
原文链接
Queue
继承Collection接口,Deque、LinkedList、PriorityQueue、BlockingQueue
用于缓冲、并发访问等场景
Set
继承Collection接口,HashSet(哈希表)、TreeSet(红黑树)
判断重复元素调用hashCode()和equal()方法实现
List
ArrayList、LinkedList、Vector、Stack
Map
HashMap、ConcurrentHashMap
Tree
红黑树
根是黑色的
叶子节点是黑色的空节点
红色节点子节点是黑色的
包含相同数目的黑色节点
TreeMap、TreeSet、HashMap
解决二叉查找树会退化成线性结构的缺点
B树、B+树、B*树
B+树不维护关键字具体信息,不考虑Value的存储,全部须要信息在叶子节点
B*树在非叶子节点兄弟之间增长指针,关键字个数至少为(2/3)* M
LSM树
大树分红多个小树
HashMap HashTable区别
HashTable方法同步,方法用synchronized修饰,多线程场合
HashTable不容许null值
遍历方式,HashTable使用Enumeration遍历,HashMap使用Iterator遍历
哈希值使用不一样,HashTable直接使用hashCode
hash数组大小默认11,HshTable增长为old*2 + 1,HashMap默认16,增长为2的指数倍
HashTable线程安全,可是须要得到对象锁,通常使用CurrentHashMap
HashTable竞争同一把锁,ConcurrentHashMap分段加锁
HashMap Concurrent HashMap区别
非线程安全&线程安全
1.7ConcurrentHashMap对Hash桶分段segment(锁),1.8Node数组+链表+红黑树,并发控制使用Synchronized和CAS来操做
HashTable使用Synchronized保证线程安全,效率低
ConcurrentHashMap锁粒度更精细,并发性能好
LinkedList ArrayList区别
双向链表&Object数组
插入删除&随机查找
都是不一样步的,不保证线程安全
内存空间占用,ArrayList在结尾预留容量空间,LinkedList每个元素消耗更多的空间
ArrayList Vector区别
Vector类全部方法同步,ArrayList不是同步的
HashMap实现
数组+链表,链表长度大于8时转化为红黑树
comparable和comparator区别
comparable有一个compareTo(Object obj)方法用来排序
comparator接口有一个compare(Object obj1,Object obj2)方法用来排序
数组排序用Arrays.sort(),集合排序用Collections.sort()
排序
快速排序
求解Kth Element问题
堆排序
求解TopK Element问题
桶排序
出现频率最多的K个数
搜索
广度优先
求解最短路径问题
用队列实现
标记遍历过的节点
深度优先
求解可达性问题
使用递归栈实现
标记遍历过的节点
回溯法(Backtracking)
求解排列组合问题
进入递归时标记为已访问,递归返回时标记为未访问
动态规划
0-1背包问题
彻底背包:可重复利用
相关文章
1.
java面试-数据结构和算法
2.
Java数据结构、算法面试题
3.
算法与数据结构面试
4.
【python面试】数据结构和算法
5.
Android面试题:数据结构&算法
6.
面试 数据结构 算法
7.
Java面试知识点总结⑥——算法与数据结构
8.
【JAVA面试】JAVA常考点之数据结构与算法(1)
9.
Java数据结构算法
10.
Java算法和数据结构面试问题
更多相关文章...
•
Rust 结构体
-
RUST 教程
•
XML 树结构
-
XML 教程
•
算法总结-回溯法
•
算法总结-广度优先算法
相关标签/搜索
数据结构+Java
java数据结构
数据结构和算法
算法与数据结构
算法和数据结构
数据结构算法
数据结构与算法
数据结构
算法面试
Java数据结构和算法
快乐工作
Java
Redis教程
PHP教程
MyBatis教程
面试
算法
数据传输
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
融合阿里云,牛客助您找到心仪好工作
2.
解决jdbc(jdbctemplate)在测试类时不报错在TomCatb部署后报错
3.
解决PyCharm GoLand IntelliJ 等 JetBrains 系列 IDE无法输入中文
4.
vue+ant design中关于图片请求不显示的问题。
5.
insufficient memory && Native memory allocation (malloc) failed
6.
解决IDEA用Maven创建的Web工程不能创建Java Class文件的问题
7.
[已解决] Error: Cannot download ‘https://start.spring.io/starter.zip?
8.
在idea让java文件夹正常使用
9.
Eclipse启动提示“subversive connector discovery”
10.
帅某-技巧-快速转帖博主文章(article_content)
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
java面试-数据结构和算法
2.
Java数据结构、算法面试题
3.
算法与数据结构面试
4.
【python面试】数据结构和算法
5.
Android面试题:数据结构&算法
6.
面试 数据结构 算法
7.
Java面试知识点总结⑥——算法与数据结构
8.
【JAVA面试】JAVA常考点之数据结构与算法(1)
9.
Java数据结构算法
10.
Java算法和数据结构面试问题
>>更多相关文章<<