關於J2ME數組的複製及連接操作方法

public class Arrays {

關於J2ME數組的複製及連接操作方法

/**

* 構造函數私有,這樣可以保證只能通過:類名.靜態方法 或 類名.靜態方法 來訪問內部數據,

* 而不可以通過創建本類的對象來進行訪問

*/

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;

}

}