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

Reu*_*ben 2 java collections hashtable

假设我从命令行输入一个字符串,我想通过使用Hashtable在字符串中找到重复和唯一的条目.

例如:

I/P:

嗨你好再见嗨好你好名字喜天喜

O/P:

独特的元素是:再见,好,名字,日

重复的元素是:

嗨3次

你好2次

nic*_*ild 8

您可以通过调用split(" ")输入String来分开输入.这将返回表示每个单词的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);
}
Run Code Online (Sandbox Code Playgroud)

此外,您可能想要研究HashMap而不是Hashtable. HashMap不是线程安全的,但速度更快. Hashtable有点慢,但是线程安全.如果您尝试在单个线程中执行此操作,我建议HashMap.