public static int hashCodeMulti(Object... objects) {
        int hash = 1;
        if (objects != null) {
            for (Object object : objects) {
                hash = hash * 31 + ObjectUtils.hashCode(object);
            }
        }
        return hash;
    }
<p>Gets the hash code for multiple objects.</p>

<p>This allows a hash code to be rapidly calculated for a number of objects.
The hash code for a single object is the <em>not</em> same as {@link #hashCode(Object)}.
The hash code for multiple objects is the same as that calculated by an
{@code ArrayList} containing the specified objects.</p>

<pre>
ObjectUtils.hashCodeMulti()                 = 1
ObjectUtils.hashCodeMulti((Object[]) null)  = 1
ObjectUtils.hashCodeMulti(a)                = 31 + a.hashCode()
ObjectUtils.hashCodeMulti(a,b)              = (31 + a.hashCode()) * 31 + b.hashCode()
ObjectUtils.hashCodeMulti(a,b,c)            = ((31 + a.hashCode()) * 31 + b.hashCode()) * 31 + c.hashCode()
</pre>

@param objects  the objects to obtain the hash code of, may be {@code null}
@return the hash code of the objects, or zero if null
@since 3.0
android/android_framework/base/src/main/java/lang3/ObjectUtils.java