日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 基础面试之集合

發布時間:2023/12/29 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 基础面试之集合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java 基礎面試之集合

1.Collection接口 的實現類
答:Collection接口有3個子接口:List、Set、Queue
a.List(有序、可重復):的實現類有ArrayList、Vector、LinkList
ArrayList、Vector底層是通過數組實現的,LinkList是通過雙向鏈表實現的。Vector支持線程同步。

b.Set(無序、不可重復)實現類有 HashSet(基于哈希表,可以為null)和TreeSet(基于二叉樹,不可為null)
補充:
Set是如何去重復的?
答:Set在進行add()操作時,會 調用(先)hashCode、(后 這樣會提升查詢速度)equals方法和已經存在的對象比較。
若重復就不會添加。

c. Queue:實現類有 Deque:底層是是數組,有2個標志位指向數組的頭與尾實現雙端隊列。

補充:Map接口沒有顯示繼承類。java.lang,Object.
HashMap是無序的,但是它的子接口類LinkHashMap是有序的。

2.HashMap的key是否可以重復?
答:key的“重復”表現在toString()上,但是本質上它們的hashcode是不一樣的,即引用地址不一樣。
所以Key不可以是重復的。

3. 請問 ArrayList、HashSet、HashMap 是線程安全的嗎?如果不是我想要線程安全的集合怎么辦?
答:都不是線程安全的,集合中只有Vector(不需要知道元素類型)和hashtable是線程安全。
可以通過調用Collections工具類提供API來實現線程同步

4. ArrayList 內部用什么實現的?
答:內部是有Object[] 實現的。(vector同樣如此)

5.集合的種類?
答: 普通集合通常性能最高,但是不保證多線程的安全 性和并發的可靠性。
線程安全集合僅僅是給集合添加了 synchronized 同步鎖,嚴重犧牲了性能,而且對并發的效率就 更低了,
并發集合則通過復雜的策略不僅保證了多線程的安全又提高的并發時的效率。
ConcurrentHashMap、ConcurrentLinkedQueue。

6.集合的實現類
答:List集合有3個實現接口;
List :Vecoter、ArrayList、LinkList
Map:HashMap、LinkHashMap
Set:HashSet、TreeSet、LinkHashSet

HashMap和HashTable的區別:
1.HashMap 對象的 key、value 值均可為 null。 HahTable 對象的 key、value 值均不可為 null。。
2.HashTalle是線程安全的,而HashMap不是線程安全的。

7.Collections工具類提供哪些方法?
a.使用集合中的某一字段,對集合進行排序:Collections.sort()

Collections.sort(list2,new Comparator<Employer2>(){@Overridepublic int compare(Employer2 a2, Employer2 b2) {return a2.getOrder().compareTo(b2.getOrder());}});

b. 對集合進行隨機排序: Collection.shuffle(List)
c. 查找指定集合中的元素,返回所查找元素的索引 :Collections.binarySearch(List, “o”);
d.求最大值:max
e.求最小值:min
f.首次/最后一次 出現元素的索引 Collections.indexOfSubList(list, subList)/Collections.lastindexOfSubList(list, subList)
g. 替換批定元素為某元素,若要替換的值存在剛返回true,反之返回false
Collections.replaceAll(list, “a”, “b”)
f. 反轉集合中元素的順序:reverse()

總結

以上是生活随笔為你收集整理的Java 基础面试之集合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。