Java综合四种方法合并两个数组

package practice;

import java.util.Arrays;
import java.util.TreeSet;

public class AnArrayOfMerger {

	public static void main(String[] args) {

		// 待合并数组
		Integer[] array01 = { 1, 7, 9, 11, 13, 15, 17, 19 };
		Integer[] array02 = { 2, 4, 6, 8, 10 };
		
		/**
		 * 方法一:循环遍历
		 */
		// 创建合并数组
		Integer[] totalArray = new Integer[array01.length + array02.length];
		// 将array01中的元素填充至合并数组
		for (int i = 0; i < array01.length; i++) {
			totalArray[i] = array01[i];
		}
		// 将数组2中的元素填充至合并数组
		for (int i = 0; i < array02.length; i++) {
			// array01.length + i延伸下标,扩容合并数组
			totalArray[array01.length + i] = array02[i];
		}
		// 遍历合并数组
		for (int i = 0; i < totalArray.length; i++) {
			System.out.print(totalArray[i] + "    ");
		}

		/**
		 * 方法二:判断填充
		 */
		System.out.println("
");
		// 创建动态合并数组,其长度是array01和array02的长度之和
		int newArray[] = new int[array01.length + array02.length];
		// 以array01和array02中的元素为基础为合并数组填充元素
		for (int i = 0; i < newArray.length; i++) {
			if (i < array01.length) {
				newArray[i] = array01[i];
			} else {
				newArray[i] = array02[i - array01.length];
			}
		}
		// 遍历合并数组中的元素
		for (int i = 0; i < newArray.length; i++) {
			System.out.print(newArray[i] + "    ");
		}
		
		/**
		 * 方法三:使用System.arraycopy(src, srcPos, dest, destPos, length);
		 * src-源数组,srcPos-源数组元素组起始索引 
		 * dest-目标数组,destPos-目标数组元素起始索引 
		 * length-复制长度
		 */
		System.out.println("
");
		int array1Length = array01.length; // 获取array01的长度
		int array2Length = array02.length; // 获取array02的长度
		// 向array01中拷贝元素并为array01扩容
		array01 = Arrays.copyOf(array01, array1Length + array2Length);
		System.arraycopy(array02, 0, array01, array1Length, array2Length);
		for (int i = 0; i < array01.length; i++) {
			System.out.print(array01[i] + "    ");
		}
		
		/**
		 * 方法四:使用TreeSet集合
		 */
		System.out.println("
");
		TreeSet<Integer> treeSet = new TreeSet<Integer>();
		// 将数组转化成List集合
		treeSet.addAll(Arrays.asList(array01));
		treeSet.addAll(Arrays.asList(array02));
		// 创建合并数组
		Integer[] buildArray = treeSet.toArray(new Integer[treeSet.size()]);
		// 遍历数组中的元素
		for (int i = 0; i < buildArray.length; i++) {
			System.out.print(buildArray[i] + "    ");
		}

	}

}
经验分享 程序员 微信小程序 职场和发展