当前位置: 代码迷 >> J2ME >> J2ME数组的复制及联接操作
  详细解决方案

J2ME数组的复制及联接操作

热度:8747   发布时间:2013-02-25 21:31:50.0
J2ME数组的复制及连接操作

public class Arrays {   /**    * 构造函数私有,这样可以保证只能通过:类名.静态方法 或 类名.静态方法 来访问内部数据,    * 而不可以通过创建本类的对象来进行访问    */   private Arrays() {   }?   /**    * 复制一个跟源byte数组一样的byte数组    * @param rSource 源byte数组    * @return 跟源byte[]数组一样的byte[]数组    */   static public byte[] copy(byte[] rSource) {      byte[] aResult = new byte[rSource.length];      System.arraycopy(rSource, 0, aResult, 0, aResult.length);?      return aResult;   }?   /**    * 复制一个跟源int数组一样的int数组    * @param rSource 源int数组    * @return 跟源int数组一样的int数组    */   static public int[] copy(int[] rSource) {      int[] aResult = new int[rSource.length];      System.arraycopy(rSource, 0, aResult, 0, aResult.length);?      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 = a1.length;?      if (nLength != a2.length) {         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 = a1.length;?      if (nLength != a2.length) {         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[a1.length + a2.length];?      System.arraycopy(a1, 0, result, 0, a1.length);      System.arraycopy(a2, 0, result, a1.length, a2.length);?      return result;   }?   /**    * 连接两个int数组,之后返回一个新的连接好的int数组    * @param a1    * @param a2    * @return 一个新的连接好的int数组    */   static public int[] join(int[] a1, int[] a2) {      int[] result = new int[a1.length + a2.length];?      System.arraycopy(a1, 0, result, 0, a1.length);      System.arraycopy(a2, 0, result, a1.length, a2.length);?      return result;   }}