Map.Entryï¼ï¼Mapçå
é¨ç±»ï¼æè¿°Mapä¸çæé®/æ°å¼å¯¹ã
SortedMap---æ©å±Mapï¼ä½¿æé®ä¿æååºæå
ä¸é¢ä»¥HashMap为ä¾ã
public static void main(String args[]){HashMap hashmap = new HashMap();
hashmap.put("Item0", "Value0");
hashmap.put("Item1", "Value1");
hashmap.put("Item2", "Value2");
hashmap.put("Item3", "Value3");
Set set = hashmap.entrySet();
Iterator iterator = set.iterator();
while (iterator.hasNext(){Map.Entry mapentry = (Map.Entry) iterator.next();
System.out.println(mapentry.getkey() + "/" + mapentry.getValue());}}注æï¼è¿éMapçæé®å¿
é¡»æ¯å¯ä¸çï¼æ¯å¦è¯´ä¸è½æ两个æé®é½ä¸ºnullã
å¦æç¨è¿å®ï¼å°±ä¼ç¥éå®çç¨å¤äºãèµæ:java.util ä¸çéåç±»å
å« Java ä¸æäºæ常ç¨çç±»ã æ常ç¨çéåç±»æ¯ List å Mapã List çå
·ä½å®ç°å
æ¬ ArrayList å Vectorï¼å®ä»¬æ¯å¯å大å°çå表ï¼æ¯è¾éåæ建ãåå¨åæä½ä»»ä½ç±»å对象çå
ç´ å表ã List éç¨äºææ°å¼ç´¢å¼è®¿é®å
ç´ çæ
å½¢ã Map æä¾äºä¸ä¸ªæ´éç¨çå
ç´ åå¨æ¹æ³ã Map éåç±»ç¨äºåå¨å
ç´ å¯¹ï¼ç§°ä½âé®âåâå¼âï¼ï¼å
¶ä¸æ¯ä¸ªé®æ å°å°ä¸ä¸ªå¼ã ä»æ¦å¿µä¸èè¨ï¼æ¨å¯ä»¥å° List çä½æ¯å
·ææ°å¼é®ç Mapã èå®é
ä¸ï¼é¤äº List å Map é½å¨å®ä¹ java.util ä¸å¤ï¼ä¸¤è
并没æç´æ¥çèç³»ãæ¬æå°çéä»ç»æ ¸å¿ Java åè¡å¥ä»¶ä¸é带ç Mapï¼åæ¶è¿å°ä»ç»å¦ä½éç¨æå®ç°æ´éç¨äºæ¨åºç¨ç¨åºç¹å®æ°æ®çä¸ç¨ Mapã Java æ ¸å¿ç±»ä¸æå¾å¤é¢å®ä¹ç Map ç±»ã å¨ä»ç»å
·ä½å®ç°ä¹åï¼æ们å
ä»ç»ä¸ä¸ Map æ¥å£æ¬èº«ï¼ä»¥ä¾¿äºè§£ææå®ç°çå
±åç¹ã Map æ¥å£å®ä¹äºåç§ç±»åçæ¹æ³ï¼æ¯ä¸ª Map é½å
å«è¿äºæ¹æ³ã ä¸é¢ï¼æ们ä»ä¸¤ä¸ªæ®éçæ¹æ³ï¼è¡¨ 1ï¼å¼å§å¯¹è¿äºæ¹æ³å 以ä»ç»ã put(Object key, Object value)å°æå®å¼ä¸æå®é®ç¸å
³è
尽管æ¨å¯è½æ³¨æå°ï¼çºµç¶å设忽ç¥æ建ä¸ä¸ªéè¦ä¼ éç» putAll() ç Map çå¼éï¼ä½¿ç¨ putAll() é常ä¹å¹¶ä¸æ¯ä½¿ç¨å¤§éç put() è°ç¨æ´ææçï¼ä½ putAll() çåå¨ä¸ç¹ä¹ä¸ç¨å¥ã è¿æ¯å 为ï¼putAll() é¤äºè¿ä»£ put() ææ§è¡çå°æ¯ä¸ªé®å¼å¯¹æ·»å å° Map çç®æ³ä»¥å¤ï¼è¿éè¦è¿ä»£æä¼ éç Map çå
ç´ ã ä½åºæ³¨æï¼putAll() å¨æ·»å ææå
ç´ ä¹åå¯ä»¥æ£ç¡®è°æ´ Map ç大å°ï¼å æ¤å¦ææ¨æªäº²èªè°æ´ Map ç大å°ï¼æ们å°å¯¹æ¤è¿è¡ç®åä»ç»ï¼ï¼å putAll() å¯è½æ¯é¢æçæ´ææã è¿ä»£Map ä¸çå
ç´ ä¸åå¨ç´æ¥äºå½çæ¹æ³ã å¦æè¦æ¥è¯¢æ个 Map 以äºè§£å
¶åªäºå
ç´ æ»¡è¶³ç¹å®æ¥è¯¢ï¼æå¦æè¦è¿ä»£å
¶ææå
ç´ ï¼æ 论åå å¦ä½ï¼ï¼åæ¨é¦å
éè¦è·å该 Map çâè§å¾âã æä¸ç§å¯è½çè§å¾ï¼åè§è¡¨ 3ï¼ å两个è§å¾åè¿å Set 对象ï¼ç¬¬ä¸ä¸ªè§å¾è¿å Collection 对象ã å°±è¿ä¸¤ç§æ
åµèè¨ï¼é®é¢å°è¿é并没æç»æï¼è¿æ¯å 为æ¨æ æ³ç´æ¥è¿ä»£ Collection 对象æ Set 对象ãè¦è¿è¡è¿ä»£ï¼æ¨å¿
é¡»è·å¾ä¸ä¸ª Iterator 对象ã å æ¤ï¼è¦è¿ä»£ Map çå
ç´ ï¼å¿
é¡»è¿è¡æ¯è¾ç¦ççç¼ç Iterator keyValuePairs = aMap.entrySet().iterator();Iterator keys = aMap.keySet().iterator();Iterator values = aMap.values().iterator();
å¼å¾æ³¨æçæ¯ï¼è¿äºå¯¹è±¡ï¼SetãCollection å Iteratorï¼å®é
ä¸æ¯åºç¡ Map çè§å¾ï¼èä¸æ¯å
å«ææå
ç´ çå¯æ¬ã è¿ä½¿å®ä»¬ç使ç¨æçå¾é«ã å¦ä¸æ¹é¢ï¼Collection æ Set 对象ç toArray() æ¹æ³å´å建å
å« Map ææå
ç´ çæ°ç»å¯¹è±¡ï¼å æ¤é¤äºç¡®å®éè¦ä½¿ç¨æ°ç»ä¸å
ç´ çæ
å½¢å¤ï¼å
¶æç并ä¸é«ã æè¿è¡äºä¸ä¸ªå°æµè¯ï¼ééæ件ä¸ç Test1ï¼ï¼è¯¥æµè¯ä½¿ç¨äº HashMapï¼å¹¶ä½¿ç¨ä»¥ä¸ä¸¤ç§æ¹æ³å¯¹è¿ä»£ Map å
ç´ çå¼éè¿è¡äºæ¯è¾ï¼ int mapsize = aMap.size();Iterator keyValuePairs1 = aMap.entrySet().iterator();for (int i = 0; i < mapsize; i++){ Map.Entry entry = (Map.Entry) keyValuePairs1.next(); Object key = entry.getKey(); Object value = entry.getValue(); ...}Object[] keyValuePairs2 = aMap.entrySet().toArray();for (int i = 0; i < rem; i++) {{ Map.Entry entry = (Map.Entry) keyValuePairs2[i]; Object key = entry.getKey(); Profilers in Oracle JDeveloperOracle JDeveloper å
å«ä¸ä¸ªåµå
¥ççæµå¨ï¼å®æµéå
ååæ§è¡æ¶é´ï¼ä½¿æ¨è½å¤å¿«éè¯å«ä»£ç ä¸çç¶é¢ã ææ¾ä½¿ç¨ Jdeveloper çæ§è¡çæµå¨çæµ HashMap ç containsKey() å containsValue() æ¹æ³ï¼å¹¶å¾å¿«åç° containsKey() æ¹æ³çéåº¦æ¯ containsValue() æ¹æ³æ
¢å¾å¤ï¼å®é
ä¸è¦æ
¢å 个æ°é级ï¼ï¼ã ï¼åè§å¾ 1 åå¾ 2ï¼ä»¥åééæ件ä¸ç Test2 ç±»ï¼ã Object value = entry.getValue(); ...}
æ¤æµè¯ä½¿ç¨äºä¸¤ç§æµéæ¹æ³ï¼ ä¸ç§æ¯æµéè¿ä»£å
ç´ çæ¶é´ï¼å¦ä¸ç§æµéä½¿ç¨ toArray è°ç¨å建æ°ç»çå
¶ä»å¼éã 第ä¸ç§æ¹æ³ï¼å¿½ç¥å建æ°ç»æéçæ¶é´ï¼è¡¨æï¼ä½¿ç¨å·²ä» toArray è°ç¨ä¸å建çæ°ç»è¿ä»£å
ç´ çé度è¦æ¯ä½¿ç¨ Iterator çé度大约快 30%-60%ã ä½å¦æå°ä½¿ç¨ toArray æ¹æ³å建æ°ç»çå¼éå
å«å¨å
ï¼åä½¿ç¨ Iterator å®é
ä¸è¦å¿« 10%-20%ã å æ¤ï¼å¦æç±äºæç§åå è¦å建ä¸ä¸ªéåå
ç´ çæ°ç»èéè¿ä»£è¿äºå
ç´ ï¼ååºä½¿ç¨è¯¥æ°ç»è¿ä»£å
ç´ ã ä½å¦ææ¨ä¸éè¦æ¤ä¸é´æ°ç»ï¼åä¸è¦å建å®ï¼èæ¯ä½¿ç¨ Iterator è¿ä»£å
ç´ ã 表3ï¼ è¿åè§å¾ç Map æ¹æ³ï¼ 使ç¨è¿äºæ¹æ³è¿åç对象ï¼æ¨å¯ä»¥éå Map çå
ç´ ï¼è¿å¯ä»¥å é¤ Map ä¸çå
ç´ ã entrySet()è¿å Map ä¸æå
å«æ å°ç Set è§å¾ã Set ä¸çæ¯ä¸ªå
ç´ é½æ¯ä¸ä¸ª Map.Entry 对象ï¼å¯ä»¥ä½¿ç¨ getKey() å getValue() æ¹æ³ï¼è¿æä¸ä¸ª setValue() æ¹æ³ï¼è®¿é®åè
çé®å
ç´ åå¼å
ç´ keySet()è¿å Map ä¸æå
å«é®ç Set è§å¾ã å é¤ Set ä¸çå
ç´ è¿å°å é¤ Map ä¸ç¸åºçæ å°ï¼é®åå¼ï¼values()è¿å map ä¸æå
å«å¼ç Collection è§å¾ã å é¤ Collection ä¸çå
ç´ è¿å°å é¤ Map ä¸ç¸åºçæ å°ï¼é®åå¼ï¼
表4 ä¸ååºäº Map 访é®æ¹æ³ãMap é常éåæé®ï¼èéæå¼ï¼è¿è¡è®¿é®ã Map å®ä¹ä¸æ²¡æè§å®è¿è¯å®æ¯ççï¼ä½é常æ¨å¯ä»¥ææè¿æ¯ççã ä¾å¦ï¼æ¨å¯ä»¥ææ containsKey() æ¹æ³ä¸ get() æ¹æ³ä¸æ ·å¿«ã å¦ä¸æ¹é¢ï¼containsValue() æ¹æ³å¾å¯è½éè¦æ«æ Map ä¸çå¼ï¼å æ¤å®çé度å¯è½æ¯è¾æ
¢ã containsKey(Object key)å¦æ Map å
å«æå®é®çæ å°ï¼åè¿å truecontainsValue(Object value)å¦ææ¤ Map å°ä¸ä¸ªæå¤ä¸ªé®æ å°å°æå®å¼ï¼åè¿å true
å¯¹ä½¿ç¨ containsKey() å containsValue() éå HashMap ä¸ææå
ç´ æéæ¶é´çæµè¯è¡¨æï¼containsValue() æéçæ¶é´è¦é¿å¾å¤ã å®é
ä¸è¦é¿å 个æ°éçº§ï¼ ï¼åè§å¾ 1 åå¾ 2ï¼ä»¥åééæ件ä¸ç Test2ï¼ã å æ¤ï¼å¦æ containsValue() æ¯åºç¨ç¨åºä¸çæ§è½é®é¢ï¼å®å°å¾å¿«æ¾ç°åºæ¥ï¼å¹¶å¯ä»¥éè¿çæµæ¨çåºç¨ç¨åºè½»æ¾å°å°å
¶è¯å«ã è¿ç§æ
åµä¸ï¼æç¸ä¿¡æ¨è½å¤æ³åºä¸ä¸ªææçæ¿æ¢æ¹æ³æ¥å®ç° containsValue() æä¾ççæåè½ã ä½å¦ææ³ä¸åºåæ³ï¼åä¸ä¸ªå¯è¡ç解å³æ¹æ¡æ¯åå建ä¸ä¸ª Mapï¼å¹¶å°ç¬¬ä¸ä¸ª Map çææå¼ä½ä¸ºé®ã è¿æ ·ï¼ç¬¬ä¸ä¸ª Map ä¸ç containsValue() å°æ为第äºä¸ª Map ä¸æ´ææç containsKey()ã ç½åè¯è®ºï¼2
HashMapåHashtableçåºå«2007-04-05 12:07HashMapæ¯Java 1.2å¼è¿çMapæ¥å£çä¸ä¸ªå®ç° Hashtableçæ¹æ³æ¯åæ¥çï¼èHashMapçæ¹æ³ä¸æ¯ã è¿å°±æå³çï¼è½ç¶ä½ å¯ä»¥ä¸ç¨éåä»»ä½ç¹æ®çè¡ä¸ºå°±å¯ä»¥å¨ä¸ä¸ªå¤çº¿ç¨çåºç¨ç¨åºä¸ç¨ä¸ä¸ªHashtableï¼ä½ä½ å¿
é¡»åæ ·å°ä¸ºä¸ä¸ªHashMapæä¾å¤å æ¥ãä¸ä¸ªæ¹ä¾¿çæ¹æ³å°±æ¯å©ç¨Collectionsç±»çéæçsynchronizedMap()æ¹æ³ï¼å®å建ä¸ä¸ªçº¿ç¨å®å
¨çMap对象ï¼å¹¶æå®ä½ä¸ºä¸ä¸ª å°è£
ç对象æ¥è¿åãè¿ä¸ªå¯¹è±¡çæ¹æ³å¯ä»¥è®©ä½ åæ¥è®¿é®æ½å¨çHashMapãè¿ä¹åçç»æå°±æ¯å½ä½ ä¸éè¦åæ¥æ¶ï¼ä½ ä¸è½åæHashtableä¸çåæ¥ï¼æ¯ å¦å¨ä¸ä¸ªå线ç¨çåºç¨ç¨åºä¸ï¼ï¼èä¸åæ¥å¢å äºå¾å¤å¤çè´¹ç¨ã
温馨提示:答案为网友推荐,仅供参考