如何使用Hashtable查找重复的和唯一的字符串条目

| 假设我要从命令行输入一个字符串,并且我想使用Hashtable在字符串中查找重复项和唯一项。 例如: i / p: 嗨,你好,再见,嗨,好你好,名字,嗨,日嗨 o / p: 独特的元素是:再见,好,名字,日子 重复的元素是: 嗨3次 你好2次     
已邀请:
您可以通过在输入String上调用
split(\" \")
来分开输入。这将返回代表每个单词的String []。遍历此数组,并使用每个String作为Hashtable的键,其值为Integer。每次遇到一个单词时,要么增加其值,要么在当前没有值的情况下将该值设置为0。
Hashtable<String, Integer> hashtable = new Hashtable<String, Integer>();
String[] splitInput = input.split(\" \");
for(String inputToken : splitInput) {
    Integer val = hashtable.get(inputToken);
    if(val == null) {
        val = new Integer(0);
    }
    ++val;
    hashtable.put(inputToken, val);
}
另外,您可能需要研究
HashMap
而不是
Hashtable
HashMap
不是线程安全的,但速度更快。
Hashtable
慢一点,但线程安全。如果您尝试在单个线程中执行此操作,建议使用
HashMap
。     
使用哈希表,其字符串为键,数字类型为计数器。 遍历所有单词,如果它们不在地图中,则插入它们;否则增加计数(哈希表的数据部分)。 hth 马里奥     
您可以将每个字符串转换为整数。然后,将生成的整数用作哈希值。要将字符串转换为int,可以将其视为256个基数,然后将其转换     

要回复问题请先登录注册