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.
《給初學者的Windows Vista的補遺手冊》之074
2.
CentoOS7.5下編譯suricata-5.0.3及簡單使用
3.
快速搭建網站
4.
使用u^2net打造屬於自己的remove-the-background
5.
3.1.7 spark體系之分佈式計算-scala編程-scala中模式匹配match
6.
小Demo大知識-通過控制Button移動來學習Android座標
7.
maya檢查和刪除多重面
8.
Java大數據:大數據開發必須掌握的四種數據庫
9.
強烈推薦幾款IDEA插件,12款小白神器
10.
數字孿生體技術白皮書 附下載地址
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
java面試-數據結構和算法
2.
Java數據結構、算法面試題
3.
算法與數據結構面試
4.
【python面試】數據結構和算法
5.
Android面試題:數據結構&算法
6.
面試 數據結構 算法
7.
Java面試知識點總結⑥——算法與數據結構
8.
【JAVA面試】JAVA常考點之數據結構與算法(1)
9.
Java數據結構算法
10.
Java算法和數據結構面試問題
>>更多相關文章<<