線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1795
推到 Plurk!
推到 Facebook!

比對Hashtable

尚未結案
vespa
一般會員


發表:14
回覆:22
積分:7
註冊:2004-02-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-23 09:56:09 IP:163.13.xxx.xxx 未訂閱
我將一張圖片內的RGB值當Hashtable的key值 value值為該key值所出現的頻率 若想將兩個hashtable做比對 將差異處另存一個Hashtable 請教大家能否給我些建議 如下圖所示 圖一: key value 0 2 1 2 2 3 3 1 圖二: key value 1 3 2 2 3 1 4 2 差異值: key value 0 2 1 1 2 1 3 0 4 2 發表人 - vespa 於 2004/06/23 14:01:46
vespa
一般會員


發表:14
回覆:22
積分:7
註冊:2004-02-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-24 10:28:21 IP:163.13.xxx.xxx 未訂閱
以下是我參考網路上的程式碼所寫成的 不過我覺得程式碼太冗長 感覺邏輯不是很正確 不知有沒有更好的寫法?  
public static void equals(Map m1, Map m2){
     Map uncommon=new Hashtable();         
     Map common=new Hashtable(); 
     Set key1 = m1.keySet();
     Set key2 = m2.keySet();
     for (Iterator it = key1.iterator() ; it.hasNext(); ){
             Object key3 = it.next(); 
            if(m2.containsKey(key3)){
                Integer n1=(Integer)m1.get(key3);
                  Integer n2=(Integer)m2.get(key3);
                  int val1=n1.intValue();
                  int val2=n2.intValue();
           common.put( key3,sub(val1,val2)) ;
             }
             else {
               uncommon.put(key3 , m1.get(key3) );
             }
     }         
     
     for (Iterator it = key2.iterator() ; it.hasNext(); ){
             Object key3 = it.next(); 
            if(m1.containsKey(key3)){
                Integer n1=(Integer)m1.get(key3); 
                  Integer n2=(Integer)m2.get(key3);
                  int val1=n1.intValue();
                  int val2=n2.intValue();
           common.put( key3,sub(val1,val2));
             }
             else {
               uncommon.put(key3 , m2.get(key3) );
             }
     }         
 }
 
系統時間:2024-05-08 20:59:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!