开发者

how to find duplicate and unique string entries using Hashtable

Assume I'm taking input a string from command line and I want to find the duplicate and unique entries in the string by using Hashtable.

eg:

i/p:

hi hello bye hi good hello name hi day hi

o/p:

Unique elements are: bye, good, name, day

Duplicate elements are:

hi 3 times

hello 2 times 开发者_StackOverflow


You can break the input apart by calling split(" ") on the input String. This will return a String[] representing each word. Iterate over this array, and use each String as the key into your Hashtable, with the value being an Integer. Each time you encounter a word, either increment its value, or set the value to 0 if no value is currently there.

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);
}

Also, you may want to look into HashMap rather than Hashtable. HashMap is not thread safe, but is faster. Hashtable is a bit slower, but is thread safe. If you are trying to do this in a single thread, I would recommend HashMap.


Use a hashtable with string as key and a numeric type as counter.

Go through all the words and if they are not in the map, insert them; otherwise increase the count (the data part of the hashtable).

hth

Mario


you can convert each string into an integer. Then, use the generated integer as the hash value. To convert string to int, you can treat it as a base 256 number and then convert it

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜