📄 bytearray.java
字号:
package com.reddragon2046.base.utilities.data.adapters;
import com.reddragon2046.base.utilities.data.BidirectionalIterator;
import com.reddragon2046.base.utilities.data.ForwardIterator;
import java.util.Iterator;
// Referenced classes of package com.reddragon2046.base.utilities.data.adapters:
// AbstractNativeArray, ByteBuffer, ByteIterator, Algorithms
public class ByteArray extends AbstractNativeArray
{
public ByteArray()
{
this(new byte[0]);
}
public ByteArray(ByteArray array)
{
this(array.array);
}
public ByteArray(ByteBuffer buffer)
{
this(buffer.get());
}
public ByteArray(byte array[])
{
this.array = array;
}
public synchronized Object clone()
{
return new ByteArray(this);
}
public synchronized String toString()
{
return Algorithms.Printing.toString(this, "byte[]");
}
public boolean equals(Object object)
{
return (object instanceof ByteArray) && equals((ByteArray)object) || (object instanceof ByteBuffer) && equals((ByteBuffer)object);
}
public boolean equals(ByteArray object)
{
return equals(object.array);
}
public synchronized boolean equals(ByteBuffer buffer)
{
boolean flag;
synchronized(buffer)
{
flag = sliceEquals(array, array.length, buffer.storage, buffer.length);
}
return flag;
}
public synchronized boolean equals(byte array[])
{
boolean flag;
synchronized(array)
{
flag = sliceEquals(this.array, this.array.length, array, array.length);
}
return flag;
}
protected static boolean sliceEquals(byte a1[], int len1, byte a2[], int len2)
{
if(len1 != len2)
return false;
for(int i = 0; i < len1; i++)
if(a1[i] != a2[i])
return false;
return true;
}
public byte[] get()
{
return array;
}
public int size()
{
return array.length;
}
public int maxSize()
{
return array.length;
}
public Iterator iterator()
{
return begin();
}
public ForwardIterator start()
{
return begin();
}
public synchronized BidirectionalIterator begin()
{
return new ByteIterator(this, 0);
}
public ForwardIterator finish()
{
return end();
}
public synchronized BidirectionalIterator end()
{
return new ByteIterator(this, array.length);
}
public Object get(int index)
{
return new Byte(byteAt(index));
}
public synchronized byte byteAt(int index)
{
return array[index];
}
public void put(int index, Object object)
{
put(index, ((Number)object).byteValue());
}
public synchronized void put(int index, byte object)
{
array[index] = object;
}
byte array[];
static final long serialVersionUID = 0x9eef0cfadcab979eL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -