`
duobin3000
  • 浏览: 102114 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用Hashtable对字符串进行碰撞-ZT

阅读更多
使用Hashtable对字符串进行碰撞

1.在一些字符串数组中,常会有重复的记录,比如手机号码,我们可以通过Hashtable来对其进行过滤

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])) //测试指定对象是否为此哈希表中的键
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]);
输出结果为:
13811071503
13811071501
13811071500

  2.A,B均为字符串数组,找出在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]);
输出结果:
13811071503
13811071501
存在的问题:
每次都是倒序,可以再对程序稍加改动,变成正序。

  3.将一个字符串数组中某一个特定的字符串过滤掉

/** *//**检验一个字符串数组,若包含某一特定的字符串,则将该字符串从数组中删
除,返回剩余的字符串数组
* @param str_array 字符串数组
* @param str_remove 待删除的字符串
* @return 过滤后的字符串
*/
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]);
}
//生成一个新的数组
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;
}


my 2007-07-30 16:36 发表评论
分享到:
评论

相关推荐

    Hashtable的用法---马克-to-win Java视频

    Hashtable的用法---马克-to-win Java视频哈希表的详细介绍

    C# json 转hashtable

    通常,这样的文件会包含一个类,其中定义了将JSON字符串和`Hashtable`之间进行转换的方法。例如: ```csharp public class JsonHelper { public static Hashtable JsonToHashtable(string jsonString) { // 使用...

    用C#实现的遍历字符串,遍历一次查出每个字符出现的次数

    此方法适用于处理包含大量字符的字符串,且对性能有一定要求,因为它只需要遍历字符串一次,时间复杂度为O(n),其中n是字符串的长度。 在实际应用中,可能还需要考虑其他因素,例如非字母字符的处理、大小写的敏感...

    字符串的处理.doc

    在编程中,字符串处理是一项基础且重要的任务,它涉及到对文本数据的各种操作,如比较、查找、替换、复制、移动、插入、删除、排序、连接以及统计等。以下是对这些操作的详细说明: 1. **查找**: - **比较字符串...

    Json字符串转换Hashtable,DataTable,DataSet方法和反转换方法

    本篇文章将深入探讨如何在C#环境中,将JSON字符串转换为Hashtable, DataTable, 和DataSet对象,以及如何进行反转换。 首先,我们来看如何将JSON字符串转换成Hashtable。在.NET框架中,可以使用`JsonConvert....

    使用哈希表Hashtable填充ListBox

    - 将`HashTable`的键或值(根据需求)转换为字符串数组。 - 使用`ListBox.Items.AddRange()`方法将数组添加到`ListBox`。 示例代码: ```csharp // 创建Hashtable Hashtable items = new Hashtable(); items.Add...

    Java基础面试.docx

    Java基础面试涵盖了许多核心概念,包括字符串操作、方法重载与重写、字符串对象的比较、字符串类的变体以及final关键字的使用。下面将详细解释这些知识点。 1. **字符串方法**: - `split()`:根据指定的分隔符将...

    Hashtable的使用

    使用`put()`方法向`Hashtable`中插入键值对: ```java table.put("Key1", 1); table.put("Key2", 2); ``` ### 3. 查找元素 使用`get()`方法根据键查找对应的值: ```java int value = table.get("Key1"); // ...

    C#-Hashtable应用

    注意,键必须是不可变类型(如字符串或数值),并且在同一个Hashtable中必须是唯一的。尝试添加重复键会导致`ArgumentException`。 要访问或修改Hashtable中的值,可以使用ContainsKey、Item属性(或 indexer)以及...

    在J2ME环境下把JSON解析为Hashtable

    为了有效地处理这些数据,我们可以创建一个通用的JSONParser类,将JSON字符串转换成Hashtable对象,方便后续操作。 首先,我们需要一个JSON库,这里使用的是org.json.me库,它是一个轻量级的JSON解析库,适用于J2ME...

    asp.net遍历hashtable

    - 键必须是不可变的,通常是字符串类型;值可以是任意类型。 - 若要避免类型转换,可以在添加值时使用强类型化的Hashtable,如Hashtable, String&gt;。 除了遍历,还可以使用其他方法操作Hashtable,例如ContainsKey、...

    WinFormHashTable最简单用法,.net hashtable ,hashtable ,hashtable用法

    - **添加元素**:使用`Add()`方法将键值对放入Hashtable。例如,`hashTable.Add("key", "value")`。 - **获取值**:使用索引器`[]`或`ContainsKey()`和`GetValue()`方法来获取键对应的值。例如,`string value = ...

    javascript hashtable 修正版 下载

    - `hashtable_put`方法用于添加键值对,当键为字符串且设置忽略大小写时,会将键转换为大写。 - `hashtable_set`方法用于设置键值对,如果键已存在则会先移除旧的键值对。 - `hashtable_get`方法用于获取键对应的...

    HashTable Sort

    - 添加了一些键值对(这里键和值都是空字符串,实际应用中应该替换为实际的数据)。 - 提取了所有的键并存入 `ArrayList`。 - 对键列表进行了排序。 - 遍历排序后的键列表,并打印出对应的键值对。 2. **按值...

    java 字符串的过滤 方法 代码

    1. **使用`Hashtable`存储不重复元素**:通过遍历字符串数组,利用`Hashtable`的数据结构特性(键唯一)来确保每个元素只被添加一次。 2. **枚举操作**:使用`Hashtable`的`keys()`方法获取所有键值,再通过`...

    使用字典树和Hashtable两种方法解POJ 2503(JAVA)

    使用字典树可以高效地处理字符串前缀查询,而使用Hashtable可能是因为需要存储额外的信息,例如字符串出现的次数,或者在解决问题时需要进行快速查找。 在给定的文件名列表中,有两个名为"Main1.java"和"Main.java...

    HashTable

    例如,对于字符串键,可以使用DJB2哈希算法: ```c unsigned long hash(char *str) { unsigned long hash = 5381; int c; while (c = *str++) hash = ((hash ) + hash) + c; /* hash * 33 + c */ return ...

    开源项目-spion-hashtable-latencies.zip

    开源项目-spion-hashtable-latencies.zip,Improved latency in Go's next version (1.8) at spion/hashtable-latencies

    hashtable的使用

    需要注意的是,这里排序的标准是字符串的字典顺序,即按照每个字符的ASCII值进行排序。 ### 结论 通过以上介绍和示例代码,我们可以看到,在.NET Framework中,虽然哈希表默认并不支持排序,但通过一些技巧,如...

Global site tag (gtag.js) - Google Analytics