I am converting the incoming string into hash code by doing the following function but some of the values are negative. I don’t think hash values should be negative. Please tell me what I am doing wrong.
int combine = (srcadd + dstadd + sourceport + destinationport + protocol).hashCode();
System.out.println(combine);
Why not? It’s entirely valid to have negative hash codes. Most ways of coming up with a hash code naturally end up with negative values, and anything dealing with them should take account of this. However, I’d consider a different approach to coming up with your hash codes, e.g.
It’s not clear what the types of these expressions are, but I’m guessing you’re ending up taking the hash code of a string… a string that you don’t really need to create in the first place. While there are better approaches for getting hash codes for known domains, the above approach works well as a general-purpose hash generation technique.
Note that it would also help the readability of your code if you avoided abbreviations, and used camel casing, e.g.
sourceAddressinstead ofsrcadd.