### Question:
ByteArrayComparator implements Comparator<byte[]> { private ByteArrayComparator() { } private  ByteArrayComparator(); int compare( byte[] byteArray1, byte[] byteArray2 ); static final ByteArrayComparator INSTANCE; }### Answer:
@Test public void testByteArrayComparator() { ByteArrayComparator comparator = ByteArrayComparator.INSTANCE; assertEquals( 0, comparator.compare( null, null ) ); assertEquals( 0, comparator.compare( new byte[] {}, new byte[] {} ) ); assertEquals( 0, comparator.compare( new byte[] { 0x01, 0x02 }, new byte[] { 0x01, 0x02 } ) ); assertEquals( 1, comparator.compare( new byte[] {}, null ) ); assertEquals( 1, comparator.compare( new byte[] { 0x01 }, null ) ); assertEquals( 1, comparator.compare( new byte[] { 0x01, 0x02 }, new byte[] { 0x01, 0x01 } ) ); assertEquals( 1, comparator.compare( new byte[] { 0x01, 0x02, 0x01 }, new byte[] { 0x01, 0x02 } ) ); assertEquals( 1, comparator.compare( new byte[] { 0x01, 0x02 }, new byte[] { 0x01, 0x01, 0x02 } ) ); assertEquals( -1, comparator.compare( null, new byte[] {} ) ); assertEquals( -1, comparator.compare( null, new byte[] { 0x01, 0x02 } ) ); assertEquals( -1, comparator.compare( null, new byte[] { ( byte ) 0xFF, 0x02 } ) ); assertEquals( -1, comparator.compare( new byte[] {}, new byte[] { 0x01, 0x02 } ) ); assertEquals( -1, comparator.compare( new byte[] {}, new byte[] { ( byte ) 0xFF, 0x02 } ) ); assertEquals( -1, comparator.compare( new byte[] { ( byte ) 0xFF, 0x01 }, new byte[] { 0x01, 0x01, 0x02 } ) ); byte[] array = new byte[3]; array[0] = 0x01; array[1] = 0x02; assertEquals( -1, comparator.compare( new byte[] { 0x01, 0x02 }, array ) ); }