大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java中的集合框架面試題總結

Java中的集合框架面試題總結

更新時間:2019-11-25 11:08:16 來源:動力節點 瀏覽2382次



Java常見面試題匯總.jpg

  一.List,Set,Map三者的區別及總結


  List:對付順序的好幫手


  List接口存儲一組不唯一(可以有多個元素引用相同的對象),有序的對象


  Set:注重獨一無二的性質


  不允許重復的集合。不會有多個元素引用相同的對象。


  Map:用Key來搜索的專家


  使用鍵值對存儲。Map會維護與Key有關聯的值。兩個Key可以引用相同的對象,但Key不能重復,典型的Key是String類型,但也可以是任何對象。


  二.Arraylist與LinkedList區別


  Arraylist底層使用的是數組(存讀數據效率高,插入刪除特定位置效率低),LinkedList底層使用的是雙向循環鏈表數據結構(插入,刪除效率特別高)。學過數據結構這門課后我們就知道采用鏈表存儲,插入,刪除元素時間復雜度不受元素位置的影響,都是近似O(1)而數組為近似O(n),因此當數據特別多,而且經常需要插入刪除元素時建議選用LinkedList.一般程序只用Arraylist就夠用了,因為一般數據量都不會蠻大,Arraylist是使用最多的集合類。


  三.ArrayList與Vector區別


  Vector類的所有方法都是同步的。可以由兩個線程安全地訪問一個Vector對象、但是一個線程訪問Vector,代碼要在同步操作上耗費大量的時間。Arraylist不是同步的,所以在不需要同步時建議使用Arraylist。

  

  四.HashMap和Hashtable的區別


  HashMap是非線程安全的,HashTable是線程安全的;HashTable內部的方法基本都經過synchronized修飾。


  因為線程安全的問題,HashMap要比HashTable效率高一點,HashTable基本被淘汰。


  HashMap允許有null值的存在,而在HashTable中put進的鍵值只要有一個null,直接拋出NullPointerException。


  Hashtable和HashMap有幾個主要的不同:線程安全以及速度。僅在你需要完全的線程安全的時候使用Hashtable,而如果你使用Java5或以上的話,請使用ConcurrentHashMap吧


  五.HashSet和HashMap區別

image.png

  六.HashMap和ConcurrentHashMap的區別


  ConcurrentHashMap對整個桶數組進行了分割分段(Segment),然后在每一個分段上都用lock鎖進行保護,相對于HashTable的synchronized鎖的粒度更精細了一些,并發性能更好,而HashMap沒有鎖機制,不是線程安全的。(JDK1.8之后ConcurrentHashMap啟用了一種全新的方式實現,利用CAS算法。)


  HashMap的鍵值對允許有null,但是ConCurrentHashMap都不允許。


  七.HashSet如何檢查重復


  當你把對象加入HashSet時,HashSet會先計算對象的hashcode值來判斷對象加入的位置,同時也會與其他加入的對象的hashcode值作比較,如果沒有相符的hashcode,HashSet會假設對象沒有重復出現。但是如果發現有相同hashcode值的對象,這時會調用equals()方法來檢查hashcode相等的對象是否真的相同。如果兩者相同,HashSet就不會讓加入操作成功。


  hashCode()與equals()的相關規定:


  如果兩個對象相等,則hashcode一定也是相同的


  兩個對象相等,對兩個equals方法返回true


  兩個對象有相同的hashcode值,它們也不一定是相等的


  綜上,equals方法被覆蓋過,則hashCode方法也必須被覆蓋


  hashCode()的默認行為是對堆上的對象產生獨特值。如果沒有重寫hashCode(),則該class的兩個對象無論如何都不會相等(即使這兩個對象指向相同的數據)。


  ==與equals的區別


  ==是判斷兩個變量或實例是不是指向同一個內存空間equals是判斷兩個變量或實例所指向的內存空間的值是不是相同


  ==是指對內存地址進行比較equals()是對字符串的內容進行比較3.==指引用是否相同equals()指的是值是否相同


  八.comparable和comparator的區別


  comparable接口實際上是出自java.lang包它有一個compareTo(Objectobj)方法用來排序


  comparator接口實際上是出自java.util包它有一個compare(Objectobj1,Objectobj2)方法用來排序


  一般我們需要對一個集合使用自定義排序時,我們就要重寫compareTo方法或compare方法,當我們需要對某一個集合實現兩種排序方式,比如一個song對象中的歌名和歌手名分別采用一種排序方法的話,我們可以重寫compareTo方法和使用自制的Comparator方法或者以兩個Comparator來實現歌名排序和歌星名排序,第二種代表我們只能使用兩個參數版的Collections.sort().


  1.Comparator定制排序


  2.重寫compareTo方法實現按年齡來排序


  九.如何對Object的list排序


  對objects數組進行排序,我們可以用Arrays.sort()方法


  對objects的集合進行排序,需要使用Collections.sort()方法


  十.如何實現數組與List的相互轉換


  List轉數組:toArray(arraylist.size()方法;數組轉List:Arrays的asList(a)方法


  十一.如何求ArrayList集合的交集并集差集去重復并集


  需要用到List接口中定義的幾個方法:


  addAll(Collection<?extendsE>c):按指定集合的Iterator返回的順序將指定集合中的所有元素追加到此列表的末尾實例代碼:


  retainAll(Collection<?>c):僅保留此列表中包含在指定集合中的元素。


  removeAll(Collection<?>c):從此列表中刪除指定集合中包含的所有元素。


  十二.集合框架底層數據結構總結


  1.Collection


  ①.List


  Arraylist:數組(查詢快,增刪慢線程不安全,效率高)


  Vector:數組(查詢快,增刪慢線程安全,效率低)


  LinkedList:鏈表(查詢慢,增刪快線程不安全,效率高)


  ②.Set


  HashSet(無序,唯一):哈希表或者叫散列集(hashtable)


  LinkedHashSet:鏈表和哈希表組成。由鏈表保證元素的排序,由哈希表證元素的唯一性


  TreeSet(有序,唯一):紅黑樹(自平衡的排序二叉樹。)


  2.Map


  HashMap:基于哈希表的Map接口實現(哈希表對鍵進行散列,Map結構即映射表存放鍵值對)


  LinkedHashMap:HashMap的基礎上加上了鏈表數據結構


  HashTable:哈希表


  TreeMap:紅黑樹(自平衡的排序二叉樹)


  十三.集合的選用


  主要根據集合的特點來選用,比如我們需要根據鍵值獲取到元素值時就選用Map接口下的集合,需要排序時選擇TreeMap,不需要排序時就選擇HashMap,需要保證線程安全就選用ConcurrentHashMap.當我們只需要存放元素值時,就選擇實現Collection接口的集合,需要保證元素唯一時選擇實現Set接口的集合比如TreeSet或HashSet,不需要就選擇實現List接口的比如ArrayList或LinkedList,然后再根據實現這些接口的集合的特點來選用。


      以上就是動力節點Java培訓機構小編介紹的“Java中的集合框架面試題總結”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


相關推薦


最新最全java面試題及答案(初級到高級)


史上最全的中高級JAVA工程師面試題及答案匯總


Java高級開發工程師面試題


2019史上最全java面試題題庫大全800題


哪有資深java工程師面試題


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美另类69xxxxx视频 | 色偷偷尼玛图亚洲综合 | 玖玖在线精品 | 国产亚洲欧美ai在线看片 | 久久国产精品99国产精 | 久射网 | 亚洲国产成人资源在线桃色 | 色综合色综合色综合色综合网 | 国内精品福利在线视频 | 亚洲一区二区观看 | 久久婷婷久久一区二区三区 | 国产a毛片清高视频 | 精品视频在线视频 | 国产色综合久久无码有码 | 国产亚洲影院 | 欧美在线香蕉在线现视频 | 亚洲综合在线观看视频 | 香蕉在线影院 | 极品美女一级毛片免费 | 国产大片免费观看中文字幕 | 日日噜噜噜夜夜爽爽狠狠 | 午夜精品福利视频 | 国产成年| 欧美一区二区三区在线可观看 | 正在播放国产乱子伦视频 | 手机看片国产永久1204 | 国产一区2区| 色综合天天色综合 | 亚洲综合一 | 一级毛片免费观看不卡的 | 国产欧美国产精品第二区 | 色婷婷久| 成年黄网站免费大全毛片 | 亚洲欧洲综合网 | 久久亚洲一级α片 | 国产精品视频一区二区三区 | 国产精品一区二区三 | 热久久这里只有 | 久久综合97色综合网 | 亚洲国产精品综合久久久 | 国产精品爱久久久久久久 |