如何利用map做本地緩存
『壹』 我想問一下怎麼使用緩存地圖服務
如果是用ARCGIS的話,是這樣操作的,ArcMap 繪制緩存地圖服務時,要向伺服器發出請求,請求中包含所需的地圖范圍和地圖比例等屬性。ArcGIS for Server 根據此信息來確定要將哪些預渲染的緩存圖像發送回 ArcMap。伺服器不會重新計算地圖顯示,而只是去檢索經過預先計算且存儲在伺服器中的合適地圖比例下的切片。伺服器也僅會發送那些要在合適的屏幕解析度下顯示的圖像。參考的官方解釋,明白了嗎?
『貳』 hashTable 和 hashMap 作緩存,實現的兩種單例的區別
Hashtable和HashMap的區別:1.Hashtable是Dictionary的子類,HashMap是Map介面的一個實現類;2.Hashtable中的方法是同步的,而HashMap中的方法在預設情況下是非同步的。即是說,在多線程應用程序中,不用專門的操作就安全地可以使用Hashtable了;而對於HashMap,則需要額外的同步機制。但HashMap的同步問題可通過Collections的一個靜態方法得到解決:MapCollections.synchronizedMap(Mapm)這個方法返回一個同步的Map,這個Map封裝了底層的HashMap的所有方法,使得底層的HashMap即使是在多線程的環境中也是安全的。3.在HashMap中,null可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應的值為null。當get()方法返回null值時,即可以表示HashMap中沒有該鍵,也可以表示該鍵所對應的值為null。因此,在HashMap中不能由get()方法來判斷HashMap中是否存在某個鍵,而應該用containsKey()方法來判斷。Map├Hashtable├HashMap└WeakHashMapMap介面請注意,Map沒有繼承Collection介面,Map提供key到value的映射。一個Map中不能包含相同的key,每個key只能映射一個value。Map介面提供3種集合的視圖,Map的內容可以被當作一組key集合,一組value集合,或者一組key-value映射。Hashtable類Hashtable繼承Map介面,實現一個key-value映射的哈希表。任何非空(non-null)的對象都可作為key或者value。添加數據使用put(key,value),取出數據使用get(key),這兩個基本操作的時間開銷為常數。Hashtable通過initialcapacity和loadfactor兩個參數調整性能。通常預設的loadfactor0.75較好地實現了時間和空間的均衡。增大loadfactor可以節省空間但相應的查找時間將增大,這會影響像get和put這樣的操作。使用Hashtable的簡單示例如下,將1,2,3放到Hashtable中,他們的key分別是」one」,」two」,」three」:Hashtablenumbers=newHashtable();numbers.put(「one」,newInteger(1));numbers.put(「two」,newInteger(2));numbers.put(「three」,newInteger(3));要取出一個數,比如2,用相應的key:Integern=(Integer)numbers.get(「two」);System.out.println(「two=」+n);由於作為key的對象將通過計算其散列函數來確定與之對應的value的位置,因此任何作為key的對象都必須實現hashCode和equals方法。hashCode和equals方法繼承自根類Object,如果你用自定義的類當作key的話,要相當小心,按照散列函數的定義,如果兩個對象相同,即obj1.equals(obj2)=true,則它們的hashCode必須相同,但如果兩個對象不同,則它們的hashCode不一定不同,如果兩個不同對象的hashCode相同,這種現象稱為沖突,沖突會導致操作哈希表的時間開銷增大,所以盡量定義好的hashCode()方法,能加快哈希表的操作。如果相同的對象有不同的hashCode,對哈希表的操作會出現意想不到的結果(期待的get方法返回null),要避免這種問題,只需要牢記一條:要同時復寫equals方法和hashCode方法,而不要只寫其中一個。Hashtable是同步的。HashMap類HashMap和Hashtable類似,不同之處在於HashMap是非同步的,並且允許null,即nullvalue和nullkey。,但是將HashMap視為Collection時(values()方法可返回Collection),其迭代子操作時間開銷和HashMap的容量成比例。因此,如果迭代操作的性能相當重要的話,不要將HashMap的初始化容量設得過高,或者loadfactor過低。WeakHashMap類WeakHashMap是一種改進的HashMap,它對key實行「弱引用」,如果一個key不再被外部所引用,那麼該key可以被GC回收。