A. java中Map類有什麼作用,具體怎麼用呢
map是以鍵值對來存儲數據的,例如:
Map map = new HashMap();
map.put("移動","10086");
String c = map.get("移動");
結果c="10086」;
簡單來說,map就像我們手機的電話本,用map.put("移動","10086"),就是在電話本保存了移動的電話,然後當你想拿移動的電話時候就用String c = map.get("移動");就可以拿到電話號碼了。其實學習結合生活實際比較容易理解,也學得快。
B. 誰能說說Java中的Set List Map存儲方式個各有什麼不同
List介面對Collection進行了簡單的擴充,它的具體實現類常用的有ArrayList和LinkedList。你可以將任何東西放到一個List容器中,並在需要時從中取出。ArrayList從其命名中可以看出它是一種類似數組的形式進行存儲,因此它的隨機訪問速度極快,而LinkedList的內部實現是鏈表,它適合於在鏈表中間需要頻繁進行插入和刪除操作。在具體應用時可以根據需要自由選擇。前面說的Iterator只能對容器進行向前遍歷,而ListIterator則繼承了Iterator的思想,並提供了對List進行雙向遍歷的方法。
Set介面也是Collection的一種擴展,而與List不同的時,在Set中的對象元素不能重復,也就是說你不能把同樣的東西兩次放入同一個Set容器中。它的常用具體實現有HashSet和TreeSet類。HashSet能快速定位一個元素,但是你放到HashSet中的對象需要實現hashCode()方法,它使用了前面說過的哈希碼的演算法。而TreeSet則將放入其中的元素按序存放,這就要求你放入其中的對象是可排序的,這就用到了集合框架提供的另外兩個實用類Comparable和Comparator。一個類是可排序的,它就應該實現Comparable介面。有時多個類具有相同的排序演算法,那就不需要在每分別重復定義相同的排序演算法,只要實現Comparator介面即可。集合框架中還有兩個很實用的公用類:Collections和Arrays。Collections提供了對一個Collection容器進行諸如排序、復制、查找和填充等一些非常有用的方法,Arrays則是對一個數組進行類似的操作。
Map是一種把鍵對象和值對象進行關聯的容器,而一個值對象又可以是一個Map,依次類推,這樣就可形成一個多級映射。對於鍵對象來說,像Set一樣,一個Map容器中的鍵對象不允許重復,這是為了保持查找結果的一致性;如果有兩個鍵對象一樣,那你想得到那個鍵對象所對應的值對象時就有問題了,可能你得到的並不是你想的那個值對象,結果會造成混亂,所以鍵的唯一性很重要,也是符合集合的性質的。當然在使用過程中,某個鍵所對應的值對象可能會發生變化,這時會按照最後一次修改的值對象與鍵對應。對於值對象則沒有唯一性的要求。你可以將任意多個鍵都映射到一個值對象上,這不會發生任何問題(不過對你的使用卻可能會造成不便,你不知道你得到的到底是那一個鍵所對應的值對象)。Map有兩種比較常用的實現:HashMap和TreeMap。HashMap也用到了哈希碼的演算法,以便快速查找一個鍵,TreeMap則是對鍵按序存放,因此它便有一些擴展的方法,比如firstKey(),lastKey()等,你還可以從TreeMap中指定一個范圍以取得其子Map。鍵和值的關聯很簡單,用pub(Object key,Object value)方法即可將一個鍵與一個值對象相關聯。用get(Object key)可得到與此key對象所對應的值對象。
C. 在Java中map類的主要作用
MAP是個介面,主要用途就是存儲鍵值對,鍵是不可重復的,可以存儲object類型,值是可重復的。用途,實現類HASHMAP,TREEMAP可以用來實現如同javabean一樣的存儲功能,MAP的用法更靈活。
D. java map存儲的是鍵順序
不知道樓主指的順序是什麼。使用Map的,向來只關心灶源鍵羨肢值,只要有key,就能取出value;如果沒有key,也無法取出value,從來不會關心順序問題,也根本沒有意義。
如果樓主想通過循環取值,建議不要用map了,這和map的初隱派態衷不符。樓主可以用List來實現。
E. 怎麼判斷key是否在map中存在java
map.containsKey 判斷是否存在key ,建議常常看java API文檔.
F. java集合定義map
Map介面映射唯一鍵的值。一個關鍵是,要使用在日後檢索值對象。
給定一個鍵和一個值,可以在一個Map對象存儲的值。後的值被存儲時,可以使用它的鍵檢索。
拋出一個NoSuchElementException異常,是因為調用映射不存在的項目。
當一個對象是在映射上的元素不兼容拋出一個ClassCastException異常。
NullYiierException異常被拋出,如果試圖使用一個空對象。
當試圖改變一個不可修改的Map,則拋出一個UnsupportedOperationException異常。
SN
方法與描述
void clear( )
移除調用映射的所有鍵/值對。
boolean containsKey(Object k)
返回true如果調用映射包含k作為重點。否則,返回false。
boolean containsValue(Object v)
返回true如果映射包含v作為一個值。否則,返回false。
Set entrySet( )
返回一組包含在地圖中的條目。該集合包含類型Map.Entry對象。這種方法提供了一組視圖調用地圖。
boolean equals(Object obj)
如果obj是一個Map返回true,並且包含相同的條目。否則,返回false。
Object get(Object k)
返回與k關聯的值。
int hashCode( )
返回調用映射的哈希代碼。
boolean isEmpty( )
如果調用映射為空返回true。否則,返回false。
Set keySet( )
返回一個集,其中包含調用映射的鍵。這種方法提供了一組視圖中調用映射的鍵。
Object put(Object k, Object v)
放入調用映射中的條目,覆蓋與鍵相關聯的任何一個值。鍵和值分別為k和v。如果不已經存在鍵返回null。否則,將返回關聯鍵的前一個值。
void putAll(Map m)
把從m所有條目放進入此映射。
Object remove(Object k)
刪除其關鍵字等於k中的條目。
int size( )
返回在映射上的鍵/值對的數目。
Collection values( )
返回包含在映射中的值的集合。這種方法提供了一個集合視圖在映射中的值。
例子:
映射有其不同的類實現,比如HashMap。下面是例子來說明映射功能:
Map Elements
{Mahnaz=31, Ayan=12, Daisy=14, Zara=8}
G. java中幾種Map在什麼情況下使用
HashMap 散列表 插入和查詢的開銷是固定的; 可以通過構造方法設置容量和負載因子,調整性能默認選擇
LinkedHashMap 鏈表
取得元素的順序是其插入次序,或者最近最少使用次序;插入時比HashMap略慢,但迭代時更快
TreeMap 紅黑樹 總是保證有序; 可以通過subMap()方法返回一個子樹
WeakHashMap 弱鍵映射,允許釋放映射所指向的對象
ConcurrentHashMap 線程安全,不涉及同步加鎖
IdentityHashMap 用 == 代替 equals() 進行比較; 插入操作不會隨著Map尺寸變大而明顯變慢