Java 合并数组

简介:

Java 合并数组

(1)合并字节数组

Java代码   收藏代码
  1. /*** 
  2.      * 合并字节数组 
  3.      *  
  4.      * @param a 
  5.      * @return 
  6.      */  
  7.     public static byte[] mergeArray(byte[]... a) {  
  8.         // 合并完之后数组的总长度  
  9.         int index = 0;  
  10.         int sum = 0;  
  11.         for (int i = 0; i < a.length; i++) {  
  12.             sum = sum + a[i].length;  
  13.         }  
  14.         byte[] result = new byte[sum];  
  15.         for (int i = 0; i < a.length; i++) {  
  16.             int lengthOne = a[i].length;  
  17.             if (lengthOne == 0) {  
  18.                 continue;  
  19.             }  
  20.             // 拷贝数组  
  21.             System.arraycopy(a[i], 0, result, index, lengthOne);  
  22.             index = index + lengthOne;  
  23.         }  
  24.         return result;  
  25.     }  
  26.     /*** 
  27.      * append a byte. 
  28.      *  
  29.      * @param a 
  30.      * @param b 
  31.      * @return 
  32.      */  
  33.     public static byte[] appandByte(byte[] a, byte b) {  
  34.         int length = a.length;  
  35.         byte[] resultBytes = new byte[length + 1];  
  36.         System.arraycopy(a, 0, resultBytes, 0, length);  
  37.         resultBytes[length] = b;  
  38.         return resultBytes;  
  39.     }  
  40. /*** 
  41.      * Get top <code>frontNum</code> bytes 
  42.      *  
  43.      * @param source 
  44.      * @param frontNum 
  45.      * @return 
  46.      */  
  47.     public static byte[] getFrontBytes(byte[] source, int frontNum) {  
  48.         byte[] frontBytes = new byte[frontNum];  
  49.         System.arraycopy(source, 0, frontBytes, 0, frontNum);  
  50.         return frontBytes;  
  51.     }  
  52.   
  53.     public static byte[] getAfterBytes(byte[] source, int afterNum) {  
  54.         int length = source.length;  
  55.         byte[] afterBytes = new byte[afterNum];  
  56.         System.arraycopy(source, length - afterNum, afterBytes, 0, afterNum);  
  57.         return afterBytes;  
  58.     }  
  59. /*** 
  60.      *  
  61.      * @param frontNum 
  62.      * @param source 
  63.      * @return 
  64.      */  
  65.     public static byte[] filterFrontBytes(int frontNum, byte[] source) {  
  66.         return copyByte(frontNum, source.length - frontNum, source);  
  67.     }  
  68.   
  69.     public static byte[] copyByte(int start, int length, byte[] source) {  
  70.         byte[] des = new byte[length];  
  71.         System.arraycopy(source, start, des, 0, length);  
  72.         return des;  
  73.     }  

 

 

(2)java 合并字符串数组

Java代码   收藏代码
  1. /*** 
  2.      * merge two array 
  3.      * @param arr1 
  4.      * @param arr2 
  5.      * @return 
  6.      */  
  7.     public static String[] mergeArray2(String[]arr1,String[]arr2){  
  8.         int length1=arr1.length;  
  9.         int length2=arr2.length;  
  10.         int totalLength=length1+length2;  
  11.         String[]totalArr=new String[totalLength];  
  12.         for(int i=0;i<length1;i++){  
  13.             totalArr[i]=arr1[i];  
  14.         }  
  15.         for(int i=0;i<length2;i++){  
  16.             totalArr[i+length1]=arr2[i];  
  17.         }  
  18.         return totalArr;  
  19.     }  

 测试:

Java代码   收藏代码
  1. @Test  
  2.     public void test_mergeArray2(){  
  3.         String[]str2=new String[]{"111","222"};  
  4.         String []input=new String[]{"c","a","baa","c","c1","c"};  
  5.         String[] totalArr=SystemHWUtil.mergeArray2(str2, input);  
  6.         System.out.println(SystemHWUtil.formatArr(totalArr, " , "));  
  7.         System.out.println(totalArr.length);  
  8.     }  

 运行结果:

111 , 222 , c , a , baa , c , c1 , c

8

(3)合并int数组

Java代码   收藏代码
  1. /*** 
  2.      * merge two int array to a string 
  3.      *  
  4.      * @param a 
  5.      * @param b 
  6.      * @return 
  7.      */  
  8.     public static String merge(int[] a, int[] b) {  
  9.         StringBuffer sb = new StringBuffer();  
  10.         for (int i = 0; i < a.length; i++) {  
  11.             sb.append(a[i]);  
  12.             sb.append(",");  
  13.         }  
  14.         for (int i = 0; i < b.length; i++) {  
  15.             sb.append(b[i]);  
  16.             sb.append(",");  
  17.         }  
  18.         int leng_str = sb.toString().length();  
  19.         return sb.substring(0, leng_str - 1);  
  20.     }  

 

(4)合并char数组

Java代码   收藏代码
  1. /*** 
  2.      * 合并字符数组 
  3.      *  
  4.      * @param a 
  5.      * @return 
  6.      */  
  7.     public static char[] mergeArray(char[]... a) {  
  8.         // 合并完之后数组的总长度  
  9.         int index = 0;  
  10.         int sum = 0;  
  11.         for (int i = 0; i < a.length; i++) {  
  12.             sum = sum + a[i].length;  
  13.         }  
  14.         char[] result = new char[sum];  
  15.         for (int i = 0; i < a.length; i++) {  
  16.             int lengthOne = a[i].length;  
  17.             if (lengthOne == 0) {  
  18.                 continue;  
  19.             }  
  20.             // 拷贝数组  
  21.             System.arraycopy(a[i], 0, result, index, lengthOne);  
  22.             index = index + lengthOne;  
  23.         }  
  24.         return result;  
  25.     }  
相关文章
|
22天前
|
存储 Java 索引
个人笔记—Java基础—数组
该内容是关于数组的介绍。数组是一种容器,用于存储同类型的多个值。初始化有静态和动态两种方式:静态初始化是在创建时直接指定元素,有完整和简写格式;动态初始化则只指定类型和长度,不给定具体元素。访问数组元素通过索引,从0开始,修改元素是`数组名[索引] = 值`,数组长度是`数组名.length`。遍历数组通常用for循环。内存分配上,类信息和静态数据存放在方法区,栈内存负责方法执行和局部变量,堆内存用于new出的对象和数组,有默认初始值。
18 0
|
11天前
|
存储 Java 程序员
Java 数组
4月更文挑战第16天
|
3天前
|
存储 Java 索引
Java数组
Java数组
11 0
|
3天前
|
存储 算法 Java
【Java探索之旅】掌握数组操作,轻松应对编程挑战
【Java探索之旅】掌握数组操作,轻松应对编程挑战
9 0
|
3天前
|
存储 Java C语言
【Java探索之旅】基本类型与引用类型 数组的应用 二维数组
【Java探索之旅】基本类型与引用类型 数组的应用 二维数组
10 0
|
3天前
|
存储 机器学习/深度学习 Java
【Java探索之旅】数组使用 初探JVM内存布局
【Java探索之旅】数组使用 初探JVM内存布局
12 0
|
3天前
|
存储 Java 编译器
【Java探索之旅】数组概念与初始化指南:动静结合
【Java探索之旅】数组概念与初始化指南:动静结合
11 0
|
3天前
|
Java 索引
JAVA刷题之数组的总结和思路分享
JAVA刷题之数组的总结和思路分享
|
8天前
|
存储 Java 程序员
Java的数组
Java的数组
27 1
|
13天前
|
Java
java 数组转字符串 和字符串转int
【4月更文挑战第11天】java 数组转字符串 和字符串转int
14 2