使用Hashtable對(duì)字符串進(jìn)行碰撞

          1.在一些字符串?dāng)?shù)組中,常會(huì)有重復(fù)的記錄,比如手機(jī)號(hào)碼,我們可以通過(guò)Hashtable來(lái)對(duì)其進(jìn)行過(guò)濾

          public String[] checkArray(String[] str)...{
          Hashtable<String, String> hash=new Hashtable<String, String>();

          for(int i=0;i<str.length;i++)...{
          if(!hash.containsKey(str[i])) //測(cè)試指定對(duì)象是否為此哈希表中的鍵
          hash.put(str[i], str[i]);
          }

          Enumeration enumeration=hash.keys(); //返回此哈希表中的鍵的枚舉
          String[] str_new=new String[hash.size()];
          int i=0;

          while(enumeration.hasMoreElements())...{
          str_new[i]=enumeration.nextElement().toString();
          i++;
          }
          return str_new;
          }
          示例:
          String[] mobile={"13811071500","13811071500","13811071501","13811071503","13811071501"};
          mobile=checkArray(mobile);
          for(int i=0;i<mobile.length;i++)
          System.out.println(mobile[i]);
          輸出結(jié)果為:
          13811071503
          13811071501
          13811071500

            2.A,B均為字符串?dāng)?shù)組,找出在A中存在,而在B中不存在的字符串
          public String[] compareArray(String[] A,String[] B){
          Hashtable<String, String> hash=new Hashtable<String, String>();
          Hashtable<String, String> hash_new=new Hashtable<String, String>();

          for(int i=0;i<B.length;i++)
          hash.put(B[i], B[i]);

          for(int i=0;i<A.length;i++){
          if(!hash.containsKey(A[i]))
          hash_new.put(A[i], A[i]);
          }

          String[] C=new String[hash_new.size()];
          int i=0;
          Enumeration enumeration=hash_new.keys();

          while(enumeration.hasMoreElements()){
          C[i]=enumeration.nextElement().toString();
          i++;
          }
          return C;
          }
          示例:
          String[] mobile1={"13811071500","13811071501","13811071502","13811071503","13811071504"};
          String[] mobile2={"13811071500","13811071505","13811071502","13811071506","13811071504"};
          String[] mobile3=compareArray(mobile1,mobile2);
          for(int i=0;i<mobile3.length;i++)
          System.out.println(mobile[i]);
          輸出結(jié)果:
          13811071503
          13811071501
          存在的問(wèn)題:
          每次都是倒序,可以再對(duì)程序稍加改動(dòng),變成正序。

            3.將一個(gè)字符串?dāng)?shù)組中某一個(gè)特定的字符串過(guò)濾掉

          /** *//**檢驗(yàn)一個(gè)字符串?dāng)?shù)組,若包含某一特定的字符串,則將該字符串從數(shù)組中刪
          除,返回剩余的字符串?dāng)?shù)組
          * @param str_array 字符串?dāng)?shù)組
          * @param str_remove 待刪除的字符串
          * @return 過(guò)濾后的字符串
          */
          public String[] removeStrFromArray(String[] str_array,String
          str_remove)...{
          Hashtable<String, String> hash=new Hashtable<String, String>();
          for(int i=0;i<str_array.length;i++)...{
          if(!str_array[i].equals(str_remove))
          hash.put(str_array[i], str_array[i]);
          }
          //生成一個(gè)新的數(shù)組
          String[] str_new=new String[hash.size()];
          int i=0;
          Enumeration enumeration=hash.keys();
          while(enumeration.hasMoreElements())...{
          str_new[i]=enumeration.nextElement().toString();
          i++;
          }
          return str_new;
          }

          posts - 63, comments - 45, trackbacks - 0, articles - 99

          Copyright © my

          主站蜘蛛池模板: 台江县| 内丘县| 广平县| 仙居县| 吴桥县| 海南省| 历史| 东丽区| 婺源县| 永宁县| 阳高县| 浮山县| 大城县| 涿鹿县| 阳泉市| 唐海县| 漾濞| 六枝特区| 堆龙德庆县| 娄烦县| 甘泉县| 汶上县| 娱乐| 松滋市| 承德县| 定安县| 黑河市| 瓮安县| 海伦市| 台江县| 邯郸县| 霍邱县| 元阳县| 镇宁| 奉贤区| 清流县| 镇坪县| 米泉市| 嘉义市| 轮台县| 延长县|