Java Hash Calculate hashAll(Object[] array)

Here you can find the source of hashAll(Object[] array)

Description

finds a hash value which takes into account the value of all elements, such that two object arrays for which Arrays.equals(a1, a2) returns true will hashAll() to the same value

License

Open Source License

Declaration

public static int hashAll(Object[] array) 

Method Source Code

//package com.java2s;
/*// w  w  w. j a  v  a  2s. c o  m
 * Distributed as part of mchange-commons-java 0.2.9
 *
 * Copyright (C) 2015 Machinery For Change, Inc.
 *
 * Author: Steve Waldman <swaldman@mchange.com>
 *
 * This library is free software; you can redistribute it and/or modify
 * it under the terms of EITHER:
 *
 *     1) The GNU Lesser General Public License (LGPL), version 2.1, as 
 *        published by the Free Software Foundation
 *
 * OR
 *
 *     2) The Eclipse Public License (EPL), version 1.0
 *
 * You may choose which license to accept if you wish to redistribute
 * or modify this work. You may offer derivatives of this work
 * under the license you have chosen, or you may provide the same
 * choice of license which you have been offered here.
 *
 * This software 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.
 *
 * You should have received copies of both LGPL v2.1 and EPL v1.0
 * along with this software; see the files LICENSE-EPL and LICENSE-LGPL.
 * If not, the text of these licenses are currently available at
 *
 * LGPL v2.1: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
 *  EPL v1.0: http://www.eclipse.org/org/documents/epl-v10.php 
 * 
 */

public class Main {
    /**
     * finds a hash value which takes into account
     * the value of all elements, such that two object
     * arrays for which Arrays.equals(a1, a2) returns
     * true will hashAll() to the same value
     */
    public static int hashAll(Object[] array) {
        int out = 0;
        for (int i = 0, len = array.length; i < len; ++i) {
            Object o = array[i];
            if (o != null)
                out ^= o.hashCode();
        }
        return out;
    }

    public static int hashAll(int[] array) {
        int out = 0;
        for (int i = 0, len = array.length; i < len; ++i)
            out ^= array[i];
        return out;
    }
}

Related

  1. hash32shiftmult(int k)
  2. hash64(final byte[] data, int length)
  3. hash64To32(long lg)
  4. hash64to32(long v)
  5. hashAdd(final int left, final int right)
  6. hasHangulJongSung(char ch)
  7. hashArray(int h, Object[] a)
  8. hashArray(Object[] array)
  9. hashArray(Object[] objs)