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