All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.plotsquared.core.util.HashUtil Maven / Gradle / Ivy

There is a newer version: 7.4.1
Show newest version
/*
 * PlotSquared, a land and world management plugin for Minecraft.
 * Copyright (C) IntellectualSites 
 * Copyright (C) IntellectualSites team and contributors
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see .
 */
package com.plotsquared.core.util;

import org.checkerframework.checker.nullness.qual.NonNull;

public final class HashUtil {

    private HashUtil() {
    }

    /**
     * Hashcode of a boolean array.
* - Used for traversing mega plots quickly. * * @param array Booleans to hash * @return hashcode */ public static int hash(final @NonNull boolean[] array) { if (array.length == 4) { if (!array[0] && !array[1] && !array[2] && !array[3]) { return 0; } return ((array[0] ? 1 : 0) << 3) + ((array[1] ? 1 : 0) << 2) + ((array[2] ? 1 : 0) << 1) + (array[3] ? 1 : 0); } int n = 0; for (boolean anArray : array) { n = (n << 1) + (anArray ? 1 : 0); } return n; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy