HashMap、LinkedMap和TreeMap的比較


目的

主要想測試一下HashMap、LinkedHashMap和TreeMap的有序性

import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;

/**
 * 三種map是否有序測試:HashMap,LinkedMap,TreeMap
 * 
 * @author Lynn
 *
 */
public class TestMap {
	public static void main(String[] args) {
		Map<String,String> hashMap = new HashMap<String,String>();
		Map<String,String> linkedHashMap = new LinkedHashMap<String,String>();
		Map<String,String> treeMap = new TreeMap<String,String>();
		
		//添加相同的數據;
		hashMap.put("A", "A");
		hashMap.put("B", "B");
		hashMap.put("1", "1");
		hashMap.put("2", "2");
		
		linkedHashMap.put("A", "A");
		linkedHashMap.put("B", "B");
		linkedHashMap.put("1", "1");
		linkedHashMap.put("2", "2");
		
		treeMap.put("A", "A");
		treeMap.put("B", "B");
		treeMap.put("1", "1");
		treeMap.put("2", "2");
		
		
		Iterator iterator = hashMap.entrySet().iterator();
		System.out.println("HashMap的輸出結果:");
		while(iterator.hasNext()) {
		Map.Entry<String, String> entity = (Entry<String, String>) iterator.next();
			System.out.println("[ key="+entity.getKey()+" value="+entity.getValue()+"]");
		}
		
		iterator = linkedHashMap.entrySet().iterator();
		System.out.println("LinkedMap的輸出結果:");
		while(iterator.hasNext()) {
		Map.Entry<String, String> entity = (Entry<String, String>) iterator.next();
			System.out.println("[ key="+entity.getKey()+" value="+entity.getValue()+"]");
		}
		
		iterator = treeMap.entrySet().iterator();
		System.out.println("TreeMap的輸出結果:");
		while(iterator.hasNext()) {
		Map.Entry<String, String> entity = (Entry<String, String>) iterator.next();
			System.out.println("[ key="+entity.getKey()+" value="+entity.getValue()+"]");
		}
	}
	
}

運行結果:

結論

共同點:
HashMap,LinkedHashMap,TreeMap都屬於Map;Map 主要用於存儲鍵(key)值(value)對,根據鍵得到值,因此鍵不允許鍵重復,但允許值重復。
不同點:

  1. HashMap里面存入的鍵值對在取出的時候是隨機的,也是我們最常用的一個Map.它根據鍵的HashCode值存儲數據,根據鍵可以直接獲取它的值,具有很快的訪問速度。在Map 中插入、刪除和定位元素,HashMap 是最好的選擇。
  2. TreeMap取出來的是排序后的鍵值對。但如果您要按自然順序(字典順序),那么TreeMap會更好。
  3. LinkedHashMap 是HashMap的一個子類,如果需要輸出的順序和輸入的相同,那么用LinkedHashMap可以實現。

參考
https://blog.csdn.net/u012889434/article/details/48055679/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM