Class ByteArray


  • public final class ByteArray
    extends java.lang.Object
    ByteArray wraps java byte arrays (byte[]) to allow byte arrays to be used as keys in hashtables. This is required because the equals function on byte[] directly uses reference equality.

    This class also allows the trio of array, offset and length to be carried around as a single object.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private byte[] array  
      private int length  
      private int offset  
    • Constructor Summary

      Constructors 
      Constructor Description
      ByteArray()  
      ByteArray​(byte[] array)  
      ByteArray​(byte[] array, int offset, int length)
      Create an instance of this class that wraps ths given array.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private static boolean equals​(byte[] a, int aOffset, int aLength, byte[] b, int bOffset, int bLength)
      Compare two byte arrays using value equality.
      boolean equals​(java.lang.Object other)
      Value equality for byte arrays.
      byte[] getArray()  
      int getLength()  
      int getOffset()  
      int hashCode()  
      void readExternal​(java.io.ObjectInput in)
      Read this object from a stream of stored objects.
      void setBytes​(byte[] array)  
      void setBytes​(byte[] array, int length)  
      void setBytes​(byte[] array, int offset, int length)  
      void setLength​(int newLength)  
      void writeExternal​(java.io.ObjectOutput out)
      Write the byte array out w/o compression
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • array

        private byte[] array
      • offset

        private int offset
      • length

        private int length
    • Constructor Detail

      • ByteArray

        public ByteArray​(byte[] array,
                         int offset,
                         int length)
        Create an instance of this class that wraps ths given array. This class does not make a copy of the array, it just saves the reference.
      • ByteArray

        public ByteArray​(byte[] array)
      • ByteArray

        public ByteArray()
    • Method Detail

      • setBytes

        public void setBytes​(byte[] array)
      • setBytes

        public void setBytes​(byte[] array,
                             int length)
      • setBytes

        public void setBytes​(byte[] array,
                             int offset,
                             int length)
      • equals

        public boolean equals​(java.lang.Object other)
        Value equality for byte arrays.
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • getArray

        public final byte[] getArray()
      • getOffset

        public final int getOffset()
      • getLength

        public final int getLength()
      • setLength

        public final void setLength​(int newLength)
      • readExternal

        public void readExternal​(java.io.ObjectInput in)
                          throws java.io.IOException
        Read this object from a stream of stored objects.
        Parameters:
        in - read this.
        Throws:
        java.io.IOException - thrown on error
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Write the byte array out w/o compression
        Parameters:
        out - write bytes here.
        Throws:
        java.io.IOException - thrown on error
      • equals

        private static boolean equals​(byte[] a,
                                      int aOffset,
                                      int aLength,
                                      byte[] b,
                                      int bOffset,
                                      int bLength)
        Compare two byte arrays using value equality. Two byte arrays are equal if their length is identical and their contents are identical.