I suggest Hashes.

(Hasher in English is a noun - 'one who hashes’ - and therefore suggests that 
it would be instantiated.)

I would imagine that there would be various functions

  static int hash(Object v0, Object v1)
  static int hash(Object v0, int v1)
  static int hash(int v0, Object v1)
  static int hash(Object v0, long v1)

but they would all produce a result consistent with all of

  Arrays.hashCode(v0, v1)
  Arrays.asList(v0, v1).hashCode()
  Objects.hash(v0, v1)

People would be allowed to add more overloaded functions as long as they adhere 
to that contract.

And maybe there is also a set of functions that return results consistent with 
new HashSet(Arrays.asList(v0, v1)).hashCode() (even though, yeah, it isn’t a 
great hash function).

Julian


> On Jul 17, 2020, at 11:34 AM, Vladimir Sitnikov <sitnikov.vladi...@gmail.com> 
> wrote:
> 
>> The name Hasher implies that it would be an object. Could it not be just a
> set of static methods?
> 
> Do you have naming suggestions?
> I think Objects would be worse as it would conflict with j.u.Objects.
> 
>> Is there a library that does this for us?
> 
> I am afraid it would be easier/faster to just write it instead of search
> for an existing implementation.
> On top of that, it would be a natural fit for unorderedHash which is way
> less likely to be available in existing libraries.
> 
> Vladimir

Reply via email to