`

Java 合并数组

    博客分类:
  • Java
阅读更多

JAVA 合并数组

(1)合并字节数组

/***
	 * 合并字节数组
	 * 
	 * @param a
	 * @return
	 */
	public static byte[] mergeArray(byte[]... a) {
		// 合并完之后数组的总长度
		int index = 0;
		int sum = 0;
		for (int i = 0; i < a.length; i++) {
			sum = sum + a[i].length;
		}
		byte[] result = new byte[sum];
		for (int i = 0; i < a.length; i++) {
			int lengthOne = a[i].length;
			if (lengthOne == 0) {
				continue;
			}
			// 拷贝数组
			System.arraycopy(a[i], 0, result, index, lengthOne);
			index = index + lengthOne;
		}
		return result;
	}
	/***
	 * append a byte.
	 * 
	 * @param a
	 * @param b
	 * @return
	 */
	public static byte[] appandByte(byte[] a, byte b) {
		int length = a.length;
		byte[] resultBytes = new byte[length + 1];
		System.arraycopy(a, 0, resultBytes, 0, length);
		resultBytes[length] = b;
		return resultBytes;
	}
/***
	 * Get top <code>frontNum</code> bytes
	 * 
	 * @param source
	 * @param frontNum
	 * @return
	 */
	public static byte[] getFrontBytes(byte[] source, int frontNum) {
		byte[] frontBytes = new byte[frontNum];
		System.arraycopy(source, 0, frontBytes, 0, frontNum);
		return frontBytes;
	}

	public static byte[] getAfterBytes(byte[] source, int afterNum) {
		int length = source.length;
		byte[] afterBytes = new byte[afterNum];
		System.arraycopy(source, length - afterNum, afterBytes, 0, afterNum);
		return afterBytes;
	}
/***
	 * 
	 * @param frontNum
	 * @param source
	 * @return
	 */
	public static byte[] filterFrontBytes(int frontNum, byte[] source) {
		return copyByte(frontNum, source.length - frontNum, source);
	}

	public static byte[] copyByte(int start, int length, byte[] source) {
		byte[] des = new byte[length];
		System.arraycopy(source, start, des, 0, length);
		return des;
	}

 

 

(2)java 合并字符串数组

/***
	 * merge two array
	 * @param arr1
	 * @param arr2
	 * @return
	 */
	public static String[] mergeArray2(String[]arr1,String[]arr2){
		int length1=arr1.length;
		int length2=arr2.length;
		int totalLength=length1+length2;
		String[]totalArr=new String[totalLength];
		for(int i=0;i<length1;i++){
			totalArr[i]=arr1[i];
		}
		for(int i=0;i<length2;i++){
			totalArr[i+length1]=arr2[i];
		}
		return totalArr;
	}

 测试:

@Test
	public void test_mergeArray2(){
		String[]str2=new String[]{"111","222"};
		String []input=new String[]{"c","a","baa","c","c1","c"};
		String[] totalArr=SystemHWUtil.mergeArray2(str2, input);
		System.out.println(SystemHWUtil.formatArr(totalArr, " , "));
		System.out.println(totalArr.length);
	}

 运行结果:

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

8

(3)合并int数组

/***
	 * merge two int array to a string
	 * 
	 * @param a
	 * @param b
	 * @return
	 */
	public static String merge(int[] a, int[] b) {
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < a.length; i++) {
			sb.append(a[i]);
			sb.append(",");
		}
		for (int i = 0; i < b.length; i++) {
			sb.append(b[i]);
			sb.append(",");
		}
		int leng_str = sb.toString().length();
		return sb.substring(0, leng_str - 1);
	}

 

(4)合并char数组

/***
	 * 合并字符数组
	 * 
	 * @param a
	 * @return
	 */
	public static char[] mergeArray(char[]... a) {
		// 合并完之后数组的总长度
		int index = 0;
		int sum = 0;
		for (int i = 0; i < a.length; i++) {
			sum = sum + a[i].length;
		}
		char[] result = new char[sum];
		for (int i = 0; i < a.length; i++) {
			int lengthOne = a[i].length;
			if (lengthOne == 0) {
				continue;
			}
			// 拷贝数组
			System.arraycopy(a[i], 0, result, index, lengthOne);
			index = index + lengthOne;
		}
		return result;
	}

 

0
2
分享到:
评论

相关推荐

    详解Java合并数组的两种实现方式

    Java合并数组的两种实现方式 Java合并数组是Java编程中的一种常见操作,例如在处理数组数据时需要将多个数组合并成一个数组。在Java中有多种方式可以实现数组合并,本文将介绍两种常见的实现方式,即使用System....

    java 数组的合并

    在Java中,有多种方法可以合并数组。以下是一些常见的方法: 1. **使用System.arraycopy()方法**: 这是Java提供的一种内置方法,用于复制数组的一部分到另一个数组。我们可以先创建一个新的大数组,然后通过`...

    Java数组+数组排序+数组复制+最大最小值+合并数组+数组升降序排序+数组查找

    Java数组: Java数组排序:冒泡排序、选择排序 、插入排序 、快速排序、希尔排序、堆排序和归并排序 三种Java数组复制方法 ...四种合并Java数组方法 Java数组升降序排序 Java数组查找:二分查找、顺序查找、插值查找法

    java拼接字节数组轻量高效实现Mybytes

    自定义byte数组,可变长度,轻量高效,解决集合存储简单数据的包装问题,自增缓存减少运算,方便多次调用,非线程同步

    合并数组并且转为有序去重集合

    合并数组并且转为有序去重集合,我看到很多资源博客,百度都弄的很繁琐,所以自己总结描述了一下

    java中两个byte数组实现合并的示例

    在Java编程语言中,有时我们需要将两个或多个字节数组(`byte`数组)合并成一个新的单一数组。这种情况在处理二进制数据、文件读写或者与硬件交互时尤其常见。本文将深入探讨如何在Java中实现两个`byte`数组的合并,...

    Java实现把两个数组合并为一个的方法总结

    Java实现把两个数组合并为一个的方法总结 本文主要介绍了Java实现把两个数组合并为一个的方法,结合实例形式总结分析了java常用的四种数组合并操作技巧。这些方法可以满足不同的需求和场景,帮助开发者更高效地实现...

    java数组排序

    归并排序是一种分治策略的排序算法,它将数组分为两半,分别对每一半进行排序,然后将两个有序的部分合并。在Java中,归并排序可以使用递归实现: ```java public class MergeSort { public static void sort(int...

    accp5.0java第八章 数组(改)

    6. **数组操作**:包括复制数组、数组排序、查找特定元素、合并和分割数组等高级操作。 7. **数组作为方法参数**:在函数或方法中传递数组,使得函数可以对整个数组进行处理。 8. **异常处理**:访问越界数组元素...

    java一维数组二维数组

    Java数组相关资料,部分题目。有兴趣的同学可以了解一下

    kayer.rar_java 数组链接

    描述中提到“java实现数组链接相加”,这可能是指将两个或多个数组中的元素相加,并合并成一个新的数组。这个过程可能涉及到遍历数组、计算元素之和以及创建新的结果数组。对于初学者来说,这是一个基础但重要的概念...

    java一维数组课程作业

    在Java编程语言中,一维数组是最基础的数据结构之一,用于存储同类型的数据集合。在这个“java一维数组课程作业”中,我们看到一个名为`IntArrayUtils.java`的文件,它实现了一些基本的操作,如计算数组元素的总和、...

    Java之数组+变量.docx

    对引用类型数组,使用优化后的合并排序算法。 1.2 Arrays.toString(数组):把数组里的数据,用逗号连接成一个字符串。例如,int[] array = {1, 2, 3}; System.out.println(Arrays.toString(array));输出结果为"[1, ...

    Java取得两个数组中不同的元素

    该源代码很好地体现了数组与List之间的转换,同时也体现了两个集合的合并操作

    java-区分数字元素和字符串元素的数组排序-代码

    数组排序是 Java 编程中的一种常见操作,而在实际应用中,数组元素可能包含数字字符串和字符串两种类型,本文将详细介绍如何将数组分成数字型字符数组和字符串数组,然后各自排序后再进行合并。 数字元素和字符串...

    java多个PDF文件合并为一个PDF文件源码

    在Java编程环境中,合并多个PDF文件是一项常见的任务,特别是在处理文档集合或自动化工作流程时。以下是一个关于如何在Java中实现这一功能的详细说明。 首先,我们需要一个库来处理PDF文件,Apache PDFBox是一个...

    数组工具JAVA类

    想要合并两个或多个数组,ArrayUtils的`addAll()`方法可以轻松完成。这个方法会返回一个新的数组,包含所有输入数组的元素。 3. **数组填充** 如果你需要快速地用特定值填充数组,`fill()`方法是个好选择。只需要...

    超实用的Java数组技巧攻略

    Java 数组是编程中最基本的数据结构之一,它允许我们存储同一类型的数据集合。在这个超实用的 Java 数组技巧攻略中,我们将深入探讨如何声明、操作和优化数组的使用,以提高代码的效率和可读性。 1. **声明一个数组...

    java数组教案.doc

    【Java数组】 Java数组是Java编程中基本的数据结构,用于存储同类型的多个数据项。在Java中,数组提供了一种高效且有序的方式来组织和访问数据。数组的使用包括声明、初始化、分配内存以及访问数组元素。 ### 1. ...

Global site tag (gtag.js) - Google Analytics