Here you can find the source of deepHashCode(final Object object)
Parameter | Description |
---|---|
object | The object to compute hash code. May be null . |
public static int deepHashCode(final Object object)
//package com.java2s; /*/*from w w w . jav a 2 s. com*/ * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2001-2008, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ import java.util.Arrays; public class Main { /** * Returns a hash code for the specified object, which may be an array. * This method returns one of the following values: * <p> * <ul> * <li>If the supplied object is {@code null}, then this method returns 0.</li> * <li>Otherwise if the object is an array of objects, then * {@link Arrays#deepHashCode(Object[])} is invoked.</li> * <li>Otherwise if the object is an array of primitive type, then the corresponding * {@link Arrays#hashCode(double[]) Arrays.hashCode(...)} method is invoked.</li> * <li>Otherwise {@link Object#hashCode()} is invoked.<li> * </ul> * <p> * This method should be invoked <strong>only</strong> if the object type is declared * exactly as {@code Object}, not as some subtype like {@code Object[]}, {@code String} or * {@code float[]}. In the later cases, use the appropriate {@link Arrays} method instead. * * @param object The object to compute hash code. May be {@code null}. * @return The hash code of the given object. */ public static int deepHashCode(final Object object) { if (object == null) { return 0; } if (object instanceof Object[]) { return Arrays.deepHashCode((Object[]) object); } if (object instanceof double[]) { return Arrays.hashCode((double[]) object); } if (object instanceof float[]) { return Arrays.hashCode((float[]) object); } if (object instanceof long[]) { return Arrays.hashCode((long[]) object); } if (object instanceof int[]) { return Arrays.hashCode((int[]) object); } if (object instanceof short[]) { return Arrays.hashCode((short[]) object); } if (object instanceof byte[]) { return Arrays.hashCode((byte[]) object); } if (object instanceof char[]) { return Arrays.hashCode((char[]) object); } if (object instanceof boolean[]) { return Arrays.hashCode((boolean[]) object); } return object.hashCode(); } }