淺讀java.util.Map及其實現類(四)

繼續概述Map實現類

Provider
RenderingHints
SimpleBindings
TabularDataSupport
TreeMap
UIDefaults
WeakHashMap 

Provider

標籤:SPI
概述:自定義一組加密服務商,來與java.security交互,是一中插拔方便的工具

RenderingHints

標籤:awt 繪製
概述:提供了java在awt繪製上的多重參數配置和選擇

SimpleBindings

標籤:非線程安全 Hashmap
概述:所有的K都是string,默認構造會建立一個HashMap<String,Object> 有一個專門驗證key的方法,見一下摘選源碼。
 private void checkKey(Object key) {
        if (key == null) {
            throw new NullPointerException("key can not be null");
        }
        if (!(key instanceof String)) {
            throw new ClassCastException("key should be a String");
        }
        if (key.equals("")) {
            throw new IllegalArgumentException("key can not be empty");
        }
    }
public void putAll(Map<? extends String, ? extends Object> toMerge) {
        if (toMerge == null) {
            throw new NullPointerException("toMerge map is null");
        }
        for (Map.Entry<? extends String, ? extends Object> entry : toMerge.entrySet()) {
            String key = entry.getKey();
            checkKey(key);
            put(key, entry.getValue());
        }
    }
public Object put(String name, Object value) {
        checkKey(name);
        return map.put(name,value);
    }

TabularDataSupport

標籤: 遠程調用 MBean
概述:提供遠程調用類型映射使用,開放數據類型openBean包下

TreeMap

標籤:非線程安全 紅黑樹結構實現 
概述:默認key升序排序,也可以根據我們要求進行排序,中文按拼音排序,英文按字母
	public static void main(String[] args) throws OpenDataException {
		TreeMap<Integer, Integer> tm = new TreeMap<>(new Comparator<Integer>() {
			@Override
			public int compare(Integer o1, Integer o2) {
				return o1 < o2 ? 1 : ( o1 > 02 ? -1 : 0 );
			}
		});
		tm.put(1, 10);
		tm.put(2, 100);
		tm.put(4, 10000);
		tm.put(5, 100000);
		tm.put(3, 1000);
		tm.put(6, 1000000);
		tm.forEach((k, v) -> System.out.println("k -> " + k + "~ v -> " + v));
	}
public static void main(String[] args) throws OpenDataException {
                 TreeMap<String, Integer> tm = new TreeMap<>();
                 tm.put("A", 10);
                 tm.put("a", 100);
                 tm.put("在", 10000);
                 tm.put("6", 100000);
                 tm.put("*", 1000);
                 tm.put("f", 1000000);
                 tm.put("啊啊啊", 10000);
                 tm.forEach((k, v) -> System.out.println("k -> " + k + "~ v -> " + v));
                 }
k -> *~ v -> 1000
k -> 6~ v -> 100000
k -> A~ v -> 10
k -> a~ v -> 100
k -> f~ v -> 1000000
k -> 啊啊啊~ v -> 10000
k -> 在~ v -> 10000

UIManager

標籤:swing 屬性
概述:獲取/寫入swing組件屬性

WeakHashMap

標籤:非線程安全 弱引用 HashMap
連接:請參見 淺讀java.util.Map及其實現類(五)WeakHashMap專題



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