Java List常見面試題

1、你知道的List都有哪些?
ArrayList、LinkedList、Vector等。
2、List是有序的嗎?
List是有序的。
3、List和Vector有什麼區別?
Vector是List接口下線程安全的集合。
4、ArrayList和LinkedList的底層數據結構是什麼?
ArrayList使用的是數組結構,LinkedList使用的是鏈表結構。
5、ArrayList默認大小是多少,是如何擴容的?
Jdk1.7之前ArrayList默認大小是10,JDK1.7之後是0,JDK差異,每次約按1.5倍擴容。
6、ArrayList和LinkedList的區別?分別用在什麼場景?
ArrayList和LinkedList數據結構不一樣,前者用在查詢較多的場合,後者適用於插入較多的場合。
7、List是線程安全的嗎?如果要線程安全要怎麼做?
List中的Vector纔是線程安全的,其他要實現線程安全使用工具類Collections.synchronizedList(new ArrayList())方法。
8、怎麼給List排序?
使用List自身的sort方法,或者使用Collections.sort(list)方法;
9、Arrays.asList方法後的List可以擴容嗎?
Arrays.asList使用的是final數組,並且不支持add方法,不支持擴容。
10、List和Array之間如何互相轉換?
List>Array使用toArray方法,Array>List使用Arrays.asList(array)方法,由於它是固定的,不固定的可以使用new ArrayList(Arrays.asList(array))。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章