1. 程式人生 > 其它 >java-4.容器之問題

java-4.容器之問題

1.HashMap和HashTable有什麼區別?
1.hashMap去掉了HashTable的contains方法,但是加上了containsValue()和containsKey()方法。
2.hashTable是同步的;而HashMap是非同步的,效率上比hashTable要高。
3.hashMap允許空鍵值,而hashTable不允許。
2.如何決定使用HashMap還是TreeMap?
對於在Map中插入、刪除和定位元素這類操作,選擇HashMap。
然而,如果對一個有序的key集合進行遍歷,選擇TreeMap。
基於collection的大小,向HashMap中新增元素會更快,將map換為TreeMap進行有序key的遍歷。
3.說一下HashSet的實現原理?


HashSet底層由HashMap實現。
HashSet的值存放於HashMap的key上。
HashMap的value統一為present。
4.陣列和List之間的轉換?
List轉換為陣列:呼叫ArrayList的toArray()方法。
陣列轉換為List:呼叫Arrays的asList()方法。
5.ArrayList和Vector的區別是什麼?
Vector是同步的,而ArrayList不是。istI
ArrayList比Vector快,因為有同步,不會過載。
ArrayList更加通用,因為我們可以使用Collections工具類輕易地獲取同步列表和只讀列表。
6.Array陣列和ArrayList有何區別?

Array可以容納基本型別和物件,而ArrayList只能容納物件。
Array是指定大小的,而ArrayList大小是固定的。
Array沒有提供ArrayList那麼多功能,比如addAll、removeAll和iterator等。
7.在Queue中poll()和remove()有什麼區別?
poll()和remove()都是從佇列中取出一個元素,但是poll()在獲取元素失敗的時候會返回空,但是remove()失敗的時候會丟擲異常。
8.哪些集合是執行緒安全的?
vector:就比arraylist多個同步化機制(執行緒安全),因為效率較低,現在已經不太建議使用。
stack:堆疊類,先進後出。
hashtable:比hashmap多個執行緒安全。
enumeration:列舉,相當於迭代器。
9.Iterator和ListIterator有什麼區別?

Iterator可以用來遍歷Set和List集合,但是ListIterator只能用來遍歷List。
Iterator對集合只能是前向遍歷,ListIterator既可以前向也可以後向。
ListIterator實現了Iterator介面,幷包含其他的功能,比如:增加元素,替換元素,獲取前一個和後一個元素的索引等等。

本文來自部落格園,作者:jsqup,轉載請註明原文連結:https://www.cnblogs.com/jsqup/p/15886875.html