|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.hadoop.hbase.util.Bytes
@InterfaceAudience.Public @InterfaceStability.Stable public class Bytes
Utility class that handles byte arrays, conversions to/from other types, comparisons, hash code generation, manufacturing keys for HashMaps or HashSets, etc.
Nested Class Summary | |
---|---|
static class |
Bytes.ByteArrayComparator
Byte array comparator class. |
static class |
Bytes.RowEndKeyComparator
A Bytes.ByteArrayComparator that treats the empty array as the largest value. |
Field Summary | |
---|---|
static Comparator<byte[]> |
BYTES_COMPARATOR
Pass this to TreeMaps where byte [] are keys. |
static org.apache.hadoop.io.RawComparator<byte[]> |
BYTES_RAWCOMPARATOR
Use comparing byte arrays, byte-by-byte |
static int |
ESTIMATED_HEAP_TAX
Estimate of size cost to pay beyond payload in jvm for instance of byte []. |
static int |
SIZEOF_BOOLEAN
Size of boolean in bytes |
static int |
SIZEOF_BYTE
Size of byte in bytes |
static int |
SIZEOF_CHAR
Size of char in bytes |
static int |
SIZEOF_DOUBLE
Size of double in bytes |
static int |
SIZEOF_FLOAT
Size of float in bytes |
static int |
SIZEOF_INT
Size of int in bytes |
static int |
SIZEOF_LONG
Size of long in bytes |
static int |
SIZEOF_SHORT
Size of short in bytes |
Constructor Summary | |
---|---|
Bytes()
|
Method Summary | |
---|---|
static byte[] |
add(byte[] a,
byte[] b)
|
static byte[] |
add(byte[] a,
byte[] b,
byte[] c)
|
static int |
binarySearch(byte[][] arr,
byte[] key,
int offset,
int length,
org.apache.hadoop.io.RawComparator<byte[]> comparator)
Binary search for keys in indexes. |
static long |
bytesToVint(byte[] buffer)
|
static int |
compareTo(byte[] left,
byte[] right)
|
static int |
compareTo(byte[] buffer1,
int offset1,
int length1,
byte[] buffer2,
int offset2,
int length2)
Lexicographically compare two arrays. |
static boolean |
contains(byte[] array,
byte target)
|
static boolean |
contains(byte[] array,
byte[] target)
|
static byte[] |
copy(byte[] bytes)
Copy the byte array given in parameter and return an instance of a new byte array with the same length and the same content. |
static byte[] |
copy(byte[] bytes,
int offset,
int length)
Copy the byte array given in parameter and return an instance of a new byte array with the same length and the same content. |
static boolean |
equals(byte[] left,
byte[] right)
|
static boolean |
equals(byte[] left,
int leftOffset,
int leftLen,
byte[] right,
int rightOffset,
int rightLen)
|
static boolean |
equals(List<byte[]> a,
List<byte[]> b)
|
static byte[] |
getBytes(ByteBuffer buf)
Returns a new byte array, copied from the given buf ,
from the position (inclusive) to the limit (exclusive). |
static List<byte[]> |
getUtf8ByteArrays(List<String> strings)
|
static int |
hashCode(byte[] b)
|
static int |
hashCode(byte[] b,
int length)
|
static int |
hashCode(byte[] bytes,
int offset,
int length)
|
static byte[] |
head(byte[] a,
int length)
|
static byte[] |
incrementBytes(byte[] value,
long amount)
Bytewise binary increment/deincrement of long contained in byte array on given amount. |
static int |
indexOf(byte[] array,
byte target)
Returns the index of the first appearance of the value target in
array . |
static int |
indexOf(byte[] array,
byte[] target)
Returns the start position of the first occurrence of the specified target within array , or -1 if there is no such occurrence. |
static boolean |
isSorted(Collection<byte[]> arrays)
|
static Iterable<byte[]> |
iterateOnSplits(byte[] a,
byte[] b,
boolean inclusive,
int num)
Iterate over keys within the passed range. |
static Iterable<byte[]> |
iterateOnSplits(byte[] a,
byte[] b,
int num)
Iterate over keys within the passed range, splitting at an [a,b) boundary. |
static Integer |
mapKey(byte[] b)
|
static Integer |
mapKey(byte[] b,
int length)
|
static byte[] |
padHead(byte[] a,
int length)
|
static byte[] |
padTail(byte[] a,
int length)
|
static int |
putBigDecimal(byte[] bytes,
int offset,
BigDecimal val)
Put a BigDecimal value out to the specified byte array position. |
static int |
putByte(byte[] bytes,
int offset,
byte b)
Write a single byte out to the specified byte array position. |
static int |
putBytes(byte[] tgtBytes,
int tgtOffset,
byte[] srcBytes,
int srcOffset,
int srcLength)
Put bytes at the specified byte array position. |
static int |
putDouble(byte[] bytes,
int offset,
double d)
|
static int |
putFloat(byte[] bytes,
int offset,
float f)
|
static int |
putInt(byte[] bytes,
int offset,
int val)
Put an int value out to the specified byte array position. |
static int |
putLong(byte[] bytes,
int offset,
long val)
Put a long value out to the specified byte array position. |
static int |
putShort(byte[] bytes,
int offset,
short val)
Put a short value out to the specified byte array position. |
static void |
random(byte[] b)
Fill given array with random bytes. |
static void |
random(byte[] b,
int offset,
int length)
Fill given array with random bytes at the specified position. |
static byte[] |
readByteArray(DataInput in)
Read byte-array written with a WritableableUtils.vint prefix. |
static byte[] |
readByteArrayThrowsRuntime(DataInput in)
Read byte-array written with a WritableableUtils.vint prefix. |
static String |
readStringFixedSize(DataInput in,
int size)
Reads a fixed-size field and interprets it as a string padded with zeros. |
static long |
readVLong(byte[] buffer,
int offset)
Reads a zero-compressed encoded long from input stream and returns it. |
static byte[][] |
split(byte[] a,
byte[] b,
boolean inclusive,
int num)
Split passed range. |
static byte[][] |
split(byte[] a,
byte[] b,
int num)
Split passed range. |
static boolean |
startsWith(byte[] bytes,
byte[] prefix)
Return true if the byte array on the right is a prefix of the byte array on the left. |
static byte[] |
tail(byte[] a,
int length)
|
static BigDecimal |
toBigDecimal(byte[] bytes)
Converts a byte array to a BigDecimal |
static BigDecimal |
toBigDecimal(byte[] bytes,
int offset,
int length)
Converts a byte array to a BigDecimal value |
static byte |
toBinaryFromHex(byte ch)
Takes a ASCII digit in the range A-F0-9 and returns the corresponding integer/ordinal value. |
static boolean |
toBoolean(byte[] b)
Reverses toBytes(boolean) |
static byte[][] |
toByteArrays(byte[] column)
|
static byte[][] |
toByteArrays(String column)
|
static byte[][] |
toByteArrays(String[] t)
|
static byte[] |
toBytes(BigDecimal val)
Convert a BigDecimal value to a byte array |
static byte[] |
toBytes(boolean b)
Convert a boolean to a byte array. |
static byte[] |
toBytes(ByteBuffer buf)
Returns a new byte array, copied from the given buf ,
from the index 0 (inclusive) to the limit (exclusive),
regardless of the current position. |
static byte[] |
toBytes(double d)
Serialize a double as the IEEE 754 double format output. |
static byte[] |
toBytes(float f)
|
static byte[] |
toBytes(int val)
Convert an int value to a byte array. |
static byte[] |
toBytes(long val)
Convert a long value to a byte array using big-endian. |
static byte[] |
toBytes(short val)
Convert a short value to a byte array of SIZEOF_SHORT bytes long. |
static byte[] |
toBytes(String s)
Converts a string to a UTF-8 byte array. |
static byte[] |
toBytesBinary(String in)
|
static double |
toDouble(byte[] bytes)
|
static double |
toDouble(byte[] bytes,
int offset)
|
static float |
toFloat(byte[] bytes)
Presumes float encoded as IEEE 754 floating-point "single format" |
static float |
toFloat(byte[] bytes,
int offset)
Presumes float encoded as IEEE 754 floating-point "single format" |
static int |
toInt(byte[] bytes)
Converts a byte array to an int value |
static int |
toInt(byte[] bytes,
int offset)
Converts a byte array to an int value |
static int |
toInt(byte[] bytes,
int offset,
int length)
Converts a byte array to an int value |
static long |
toLong(byte[] bytes)
Converts a byte array to a long value. |
static long |
toLong(byte[] bytes,
int offset)
Converts a byte array to a long value. |
static long |
toLong(byte[] bytes,
int offset,
int length)
Converts a byte array to a long value. |
static short |
toShort(byte[] bytes)
Converts a byte array to a short value |
static short |
toShort(byte[] bytes,
int offset)
Converts a byte array to a short value |
static short |
toShort(byte[] bytes,
int offset,
int length)
Converts a byte array to a short value |
static String |
toString(byte[] b)
|
static String |
toString(byte[] b,
int off,
int len)
This method will convert utf8 encoded bytes into a string. |
static String |
toString(byte[] b1,
String sep,
byte[] b2)
Joins two byte arrays together using a separator. |
static String |
toStringBinary(byte[] b)
Write a printable representation of a byte array. |
static String |
toStringBinary(byte[] b,
int off,
int len)
Write a printable representation of a byte array. |
static String |
toStringBinary(ByteBuffer buf)
Converts the given byte buffer to a printable representation, from the index 0 (inclusive) to the limit (exclusive), regardless of the current position. |
static int |
unsignedBinarySearch(byte[] a,
int fromIndex,
int toIndex,
byte key)
Search sorted array "a" for byte "key". |
static byte[] |
unsignedCopyAndIncrement(byte[] input)
Treat the byte[] as an unsigned series of bytes, most significant bits first. |
static byte[] |
vintToBytes(long vint)
|
static int |
writeByteArray(byte[] tgt,
int tgtOffset,
byte[] src,
int srcOffset,
int srcLength)
Write byte-array from src to tgt with a vint length prefix. |
static void |
writeByteArray(DataOutput out,
byte[] b)
Write byte-array with a WritableableUtils.vint prefix. |
static void |
writeByteArray(DataOutput out,
byte[] b,
int offset,
int length)
Write byte-array to out with a vint length prefix. |
static void |
writeStringFixedSize(DataOutput out,
String s,
int size)
Writes a string as a fixed-size field, padded with zeros. |
static void |
zero(byte[] b)
Fill given array with zeros. |
static void |
zero(byte[] b,
int offset,
int length)
Fill given array with zeros at the specified position. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int SIZEOF_BOOLEAN
public static final int SIZEOF_BYTE
public static final int SIZEOF_CHAR
public static final int SIZEOF_DOUBLE
public static final int SIZEOF_FLOAT
public static final int SIZEOF_INT
public static final int SIZEOF_LONG
public static final int SIZEOF_SHORT
public static final int ESTIMATED_HEAP_TAX
public static Comparator<byte[]> BYTES_COMPARATOR
public static org.apache.hadoop.io.RawComparator<byte[]> BYTES_RAWCOMPARATOR
Constructor Detail |
---|
public Bytes()
Method Detail |
---|
public static byte[] readByteArray(DataInput in) throws IOException
in
- Input to read from.
in
IOException
- epublic static byte[] readByteArrayThrowsRuntime(DataInput in)
in
- Input to read from.
in
public static void writeByteArray(DataOutput out, byte[] b) throws IOException
out
- output stream to be written tob
- array to write
IOException
- epublic static void writeByteArray(DataOutput out, byte[] b, int offset, int length) throws IOException
out
- output streamb
- arrayoffset
- offset into arraylength
- length past offset
IOException
- epublic static int writeByteArray(byte[] tgt, int tgtOffset, byte[] src, int srcOffset, int srcLength)
tgt
- target arraytgtOffset
- offset into target arraysrc
- source arraysrcOffset
- source offsetsrcLength
- source length
public static int putBytes(byte[] tgtBytes, int tgtOffset, byte[] srcBytes, int srcOffset, int srcLength)
tgtBytes
- the byte arraytgtOffset
- position in the arraysrcBytes
- array to write outsrcOffset
- source offsetsrcLength
- source length
public static int putByte(byte[] bytes, int offset, byte b)
bytes
- the byte arrayoffset
- position in the arrayb
- byte to write out
public static byte[] toBytes(ByteBuffer buf)
buf
,
from the index 0 (inclusive) to the limit (exclusive),
regardless of the current position.
The position and the other index parameters are not changed.
buf
- a byte buffer
getBytes(ByteBuffer)
public static String toString(byte[] b)
b
- Presumed UTF-8 encoded byte array.
b
public static String toString(byte[] b1, String sep, byte[] b2)
b1
- The first byte array.sep
- The separator to use.b2
- The second byte array.public static String toString(byte[] b, int off, int len)
b
- Presumed UTF-8 encoded byte array.off
- offset into arraylen
- length of utf-8 sequence
b
or nullpublic static String toStringBinary(byte[] b)
b
- byte array
toStringBinary(byte[], int, int)
public static String toStringBinary(ByteBuffer buf)
buf
- a byte buffer
toBytes(ByteBuffer)
,
getBytes(ByteBuffer)
public static String toStringBinary(byte[] b, int off, int len)
b
- array to write outoff
- offset to start atlen
- length to write
public static byte toBinaryFromHex(byte ch)
ch
- The hex digit.
public static byte[] toBytesBinary(String in)
public static byte[] toBytes(String s)
s
- string
public static byte[] toBytes(boolean b)
b
- value
b
encoded in a byte array.public static boolean toBoolean(byte[] b)
toBytes(boolean)
b
- array
public static byte[] toBytes(long val)
val
- value to convert
public static long toLong(byte[] bytes)
toBytes(long)
bytes
- array
public static long toLong(byte[] bytes, int offset)
SIZEOF_LONG
bytes available.
bytes
- bytesoffset
- offset
public static long toLong(byte[] bytes, int offset, int length)
bytes
- array of bytesoffset
- offset into arraylength
- length of data (must be SIZEOF_LONG
)
IllegalArgumentException
- if length is not SIZEOF_LONG
or
if there's not enough room in the array at the offset indicated.public static int putLong(byte[] bytes, int offset, long val)
bytes
- the byte arrayoffset
- position in the arrayval
- long to write out
IllegalArgumentException
- if the byte array given doesn't have
enough room at the offset specified.public static float toFloat(byte[] bytes)
bytes
- byte array
public static float toFloat(byte[] bytes, int offset)
bytes
- array to convertoffset
- offset into array
public static int putFloat(byte[] bytes, int offset, float f)
bytes
- byte arrayoffset
- offset to write tof
- float value
bytes
public static byte[] toBytes(float f)
f
- float value
public static double toDouble(byte[] bytes)
bytes
- byte array
public static double toDouble(byte[] bytes, int offset)
bytes
- byte arrayoffset
- offset where double is
public static int putDouble(byte[] bytes, int offset, double d)
bytes
- byte arrayoffset
- offset to write tod
- value
bytes
public static byte[] toBytes(double d)
d
- value
public static byte[] toBytes(int val)
val
- value
public static int toInt(byte[] bytes)
bytes
- byte array
public static int toInt(byte[] bytes, int offset)
bytes
- byte arrayoffset
- offset into array
public static int toInt(byte[] bytes, int offset, int length)
bytes
- byte arrayoffset
- offset into arraylength
- length of int (has to be SIZEOF_INT
)
IllegalArgumentException
- if length is not SIZEOF_INT
or
if there's not enough room in the array at the offset indicated.public static int putInt(byte[] bytes, int offset, int val)
bytes
- the byte arrayoffset
- position in the arrayval
- int to write out
IllegalArgumentException
- if the byte array given doesn't have
enough room at the offset specified.public static byte[] toBytes(short val)
SIZEOF_SHORT
bytes long.
val
- value
public static short toShort(byte[] bytes)
bytes
- byte array
public static short toShort(byte[] bytes, int offset)
bytes
- byte arrayoffset
- offset into array
public static short toShort(byte[] bytes, int offset, int length)
bytes
- byte arrayoffset
- offset into arraylength
- length, has to be SIZEOF_SHORT
IllegalArgumentException
- if length is not SIZEOF_SHORT
or if there's not enough room in the array at the offset indicated.public static byte[] getBytes(ByteBuffer buf)
buf
,
from the position (inclusive) to the limit (exclusive).
The position and the other index parameters are not changed.
buf
- a byte buffer
toBytes(ByteBuffer)
public static int putShort(byte[] bytes, int offset, short val)
bytes
- the byte arrayoffset
- position in the arrayval
- short to write out
IllegalArgumentException
- if the byte array given doesn't have
enough room at the offset specified.public static byte[] toBytes(BigDecimal val)
val
-
public static BigDecimal toBigDecimal(byte[] bytes)
bytes
-
public static BigDecimal toBigDecimal(byte[] bytes, int offset, int length)
bytes
- offset
- length
-
public static int putBigDecimal(byte[] bytes, int offset, BigDecimal val)
bytes
- the byte arrayoffset
- position in the arrayval
- BigDecimal to write out
public static byte[] vintToBytes(long vint)
vint
- Integer to make a vint of.
public static long bytesToVint(byte[] buffer)
buffer
- buffer to convert
public static long readVLong(byte[] buffer, int offset) throws IOException
buffer
- Binary arrayoffset
- Offset into array at which vint begins.
IOException
- epublic static int compareTo(byte[] left, byte[] right)
left
- left operandright
- right operand
public static int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2)
buffer1
- left operandbuffer2
- right operandoffset1
- Where to start comparing in the left bufferoffset2
- Where to start comparing in the right bufferlength1
- How much to compare from the left bufferlength2
- How much to compare from the right buffer
public static boolean equals(byte[] left, byte[] right)
left
- left operandright
- right operand
public static boolean equals(byte[] left, int leftOffset, int leftLen, byte[] right, int rightOffset, int rightLen)
public static boolean startsWith(byte[] bytes, byte[] prefix)
public static int hashCode(byte[] b)
b
- bytes to hash
WritableComparator.hashBytes(byte[], int)
on the
passed in array. This method is what Text
and
ImmutableBytesWritable
use calculating hash code.public static int hashCode(byte[] b, int length)
b
- valuelength
- length of the value
WritableComparator.hashBytes(byte[], int)
on the
passed in array. This method is what Text
and
ImmutableBytesWritable
use calculating hash code.public static Integer mapKey(byte[] b)
b
- bytes to hash
b
as an Integer that can be used as key in
Maps.public static Integer mapKey(byte[] b, int length)
b
- bytes to hashlength
- length to hash
b
as an Integer that can be used as key in
Maps.public static byte[] add(byte[] a, byte[] b)
a
- lower halfb
- upper half
public static byte[] add(byte[] a, byte[] b, byte[] c)
a
- first thirdb
- second thirdc
- third third
public static byte[] head(byte[] a, int length)
a
- arraylength
- amount of bytes to grab
length
bytes from a
public static byte[] tail(byte[] a, int length)
a
- arraylength
- amount of bytes to snarf
length
bytes from a
public static byte[] padHead(byte[] a, int length)
a
- arraylength
- new array size
a
plus length
prepended 0 bytespublic static byte[] padTail(byte[] a, int length)
a
- arraylength
- new array size
a
plus length
appended 0 bytespublic static byte[][] split(byte[] a, byte[] b, int num)
a
- Beginning of rangeb
- End of rangenum
- Number of times to split range. Pass 1 if you want to split
the range in two; i.e. one split.
public static byte[][] split(byte[] a, byte[] b, boolean inclusive, int num)
a
- Beginning of rangeb
- End of rangeinclusive
- Whether the end of range is prefix-inclusive or is
considered an exclusive boundary. Automatic splits are generally exclusive
and manual splits with an explicit range utilize an inclusive end of range.num
- Number of times to split range. Pass 1 if you want to split
the range in two; i.e. one split.
public static Iterable<byte[]> iterateOnSplits(byte[] a, byte[] b, int num)
public static Iterable<byte[]> iterateOnSplits(byte[] a, byte[] b, boolean inclusive, int num)
public static int hashCode(byte[] bytes, int offset, int length)
bytes
- array to hashoffset
- offset to start fromlength
- length to hashpublic static byte[][] toByteArrays(String[] t)
t
- operands
public static byte[][] toByteArrays(String column)
column
- operand
column
public static byte[][] toByteArrays(byte[] column)
column
- operand
column
public static int binarySearch(byte[][] arr, byte[] key, int offset, int length, org.apache.hadoop.io.RawComparator<byte[]> comparator)
arr
- array of byte arrays to search forkey
- the key you want to findoffset
- the offset in the key you want to findlength
- the length of the keycomparator
- a comparator to compare.
public static byte[] incrementBytes(byte[] value, long amount)
value
- - array of bytes containing long (length <= SIZEOF_LONG)amount
- value will be incremented on (deincremented if negative)
public static void writeStringFixedSize(DataOutput out, String s, int size) throws IOException
IOException
public static String readStringFixedSize(DataInput in, int size) throws IOException
IOException
public static byte[] copy(byte[] bytes)
bytes
- the byte array to duplicate
public static byte[] copy(byte[] bytes, int offset, int length)
bytes
- the byte array to copy fromoffset
- length
-
public static int unsignedBinarySearch(byte[] a, int fromIndex, int toIndex, byte key)
a
- Array to search. Entries must be sorted and unique.fromIndex
- First index inclusive of "a" to include in the search.toIndex
- Last index exclusive of "a" to include in the search.key
- The byte to search for.
public static byte[] unsignedCopyAndIncrement(byte[] input)
input
- The byte[] to increment.
public static boolean equals(List<byte[]> a, List<byte[]> b)
public static boolean isSorted(Collection<byte[]> arrays)
public static List<byte[]> getUtf8ByteArrays(List<String> strings)
public static int indexOf(byte[] array, byte target)
target
in
array
.
array
- an array of byte
values, possibly emptytarget
- a primitive byte
value
i
for which array[i] == target
, or
-1
if no such index exists.public static int indexOf(byte[] array, byte[] target)
target
within array
, or -1
if there is no such occurrence.
More formally, returns the lowest index i
such that java.util.Arrays.copyOfRange(array, i, i + target.length)
contains exactly
the same elements as target
.
array
- the array to search for the sequence target
target
- the array to search for as a sub-sequence of array
public static boolean contains(byte[] array, byte target)
array
- an array of byte
values, possibly emptytarget
- a primitive byte
value
true
if target
is present as an element anywhere in array
.public static boolean contains(byte[] array, byte[] target)
array
- an array of byte
values, possibly emptytarget
- an array of byte
true
if target
is present anywhere in array
public static void zero(byte[] b)
b
- array which needs to be filled with zerospublic static void zero(byte[] b, int offset, int length)
b
- offset
- length
- public static void random(byte[] b)
b
- array which needs to be filled with random bytespublic static void random(byte[] b, int offset, int length)
b
- offset
- length
-
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |