public interface ByteSequence
byte
values. This interface
provides uniform, read-only access to many different kinds of byte
sequences.
This interface does not refine the general contracts of the
equals
and hashCode
methods. The result of comparing two objects that implement ByteSequence is
therefore, in general, undefined. Each object may be implemented by a different class, and there
is no guarantee that each class will be capable of testing its instances for equality with those
of the other. It is therefore inappropriate to use arbitrary ByteSequence instances as
elements in a set or as keys in a map.
Modifier and Type | Method and Description |
---|---|
byte |
byteAt(int index)
Returns the
byte value at the specified index. |
default IntStream |
bytes()
Returns a stream of
int zero-extending the byte values from this sequence. |
static ByteSequence |
create(byte[] buffer)
Creates a
ByteSequence from an existing byte[] . |
int |
length()
Returns the length of this byte sequence.
|
default ByteSequence |
subSequence(int startIndex,
int endIndex)
Returns a
ByteSequence that is a subsequence of this sequence. |
default byte[] |
toByteArray()
Returns a
byte[] containing the bytes in this sequence in the same order as this
sequence. |
int length()
byte
s in this sequencebyte byteAt(int index)
byte
value at the specified index. An index ranges from zero to
length() - 1. The first char
value of the sequence is at index zero,
the next at index one, and so on, as for array indexing.index
- the index of the byte
value to be returnedbyte
valueIndexOutOfBoundsException
- if the index argument is negative or not less than
length()default ByteSequence subSequence(int startIndex, int endIndex)
ByteSequence
that is a subsequence of this sequence. The subsequence
starts with the byte
value at the specified index and ends with the
byte
value at index end - 1. The length (in byte
s) of the
returned sequence is end - start, so if start == end then an empty sequence
is returned.startIndex
- the start index, inclusiveendIndex
- the end index, exclusiveIndexOutOfBoundsException
- if start or end are negative, if
end is greater than length(), or if start is greater
than enddefault byte[] toByteArray()
byte[]
containing the bytes in this sequence in the same order as this
sequence. The length of the byte array will be the length of this sequence. Creates a new
byte array with every invocation.default IntStream bytes()
int
zero-extending the byte
values from this sequence.static ByteSequence create(byte[] buffer)
ByteSequence
from an existing byte[]
. The byte array is
not defensively copied, therefore the given bytes must not mutate to ensure the contract of
an immutable ByteSequence.