Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.infinispan.commons.equivalence;
 
A compare function for unsigned byte arrays.

Author(s):
Galder ZamarreƱo
Since:
5.3
public class ByteArrayEquivalence implements Equivalence<byte[]> {
   public static final Equivalence<byte[]> INSTANCE = new ByteArrayEquivalence();
   @Override
   public int hashCode(Object obj) {
      return 41 + Arrays.hashCode((byte[]) obj);
   }
   @Override
   public boolean equals(byte[] objObject otherObj) {
      if (obj == otherObjreturn true;
      if (obj == nullreturn false;
      if (otherObj == null || byte[].class != otherObj.getClass()) return false;
      byte[] otherByteArray = (byte[]) otherObj;
      return Arrays.equals(objotherByteArray);
   }
   @Override
   public String toString(Object obj) {
      return Arrays.toString((byte[]) obj);
   }
   @Override
   public boolean isComparable(Object obj) {
      return true;
   }
   @Override
   public int compare(byte[] objbyte[] otherObj) {
      // Assumes unsigned byte arrays
      int minLength = Math.min(obj.lengthotherObj.length);
      for (int i = 0; i < minLengthi++) {
         int compareResult = obj[i] - otherObj[i];
         if (compareResult != 0)
            return compareResult;
      }
      return obj.length - otherObj.length;
   }
New to GrepCode? Check out our FAQ X