public class Arrays {
/**
* 構造函數私有,這樣可以保證只能通過:類名.靜態方法 或 類名.靜態方法 來訪問內部數據,
* 而不可以通過創建本類的對象來進行訪問
*/
private Arrays() {
}
/**
* 複製一個跟源byte數組一樣的byte數組
* @param rSource 源byte數組
* @return 跟源byte[]數組一樣的byte[]數組
*/
static public byte[] copy(byte[] rSource) {
byte[] aResult = new byte[th];
ycopy(rSource, 0, aResult, 0, th);
return aResult;
}
/**
* 複製一個跟源int數組一樣的int數組
* @param rSource 源int數組
* @return 跟源int數組一樣的數組
*/
static public int[] copy(int[] rSource) {
int[] aResult = new int[th];
ycopy(rSource, 0, aResult, 0, th);
return aResult;
}
/**
* 比較兩個byte數組的內容及長度是否相等.
* @param a1 第一個byte數組
* @param a2 第二個byte數組
* @return 相等的話返回true,否則返回false
*/
static public boolean equals(byte[] a1, byte[] a2) {
if ( (a1 == null) || (a2 == null)) {
return a1 == a2;
}
int nLength = th;
if (nLength != th) {
return false;
}
for (int i = 0; i < nLength; i++) {
if (a1[i] != a2[i]) {
return false;
}
}
return true;
}
/**
* 比較兩個int數組的內容及長度是否相等.
* @param a1 第一個int數組
* @param a2 第二個int數組
* @return 相等的話返回true,否則返回false
*/
static public boolean equals(int[] a1, int[] a2) {
if ( (a1 == null) || (a2 == null)) {
return a1 == a2;
}
int nLength = th;
if (nLength != th) {
return false;
}
for (int i = 0; i < nLength; i++) {
if (a1[i] != a2[i]) {
return false;
}
}
return true;
}
/**
* 連接兩個byte數組,之後返回一個新的連接好的byte數組
* @param a1
* @param a2
* @return 一個新的連接好的byte數組
*/
static public byte[] join(byte[] a1, byte[] a2) {
byte[] result = new byte[th + th];
ycopy(a1, 0, result, 0, th);
ycopy(a2, 0, result, th, th);
return result;
}
/**
* 連接兩個int數組,之後返回一個新的連接好的int數組
* @param a1
* @param a2
* @return 一個新的連接好的int數組
*/
static public int[] join(int[] a1, int[] a2) {
int[] result = new int[th + th];
ycopy(a1, 0, result, 0, th);
ycopy(a2, 0, result, th, th);
return result;
}
}