java 多个数组合并成一个数组,一个数组分割成多个数组!

java 多个数组合并成一个数组,一个数组分割成多个数组!


这没什么好说的,直接上代码:

1,多个数组合并成一个:

  

// tyy 多个数组合并
	private static int[] getListString(int[] aa, int[] bb, int[] cc) {
		// TODO Auto-generated method stub
		List collect = new ArrayList();
		collect.add(aa);
		collect.add(bb);
		collect.add(cc);
		int[] aa0 = null;
		// tyy 每次都是两个数组合并 所以合并的次数为 collect.size() ,第一个是虚拟的数组
		for (int i = 0; i < collect.size(); i++) {
			int[] aa1 = (int[]) collect.get(i);
			int[] newInt = onArrayTogater(aa0, aa1);
			aa0 = newInt;
		}
		return aa0;
	}

	private static int[] onArrayTogater(int[] aa, int[] bb) {
		// TODO Auto-generated method stub
		if (aa == null) {
			return bb;
		}
		int[] collectionInt = new int[aa.length + bb.length];
		for (int i = 0; i < aa.length; i++) {
			collectionInt[i] = aa[i];
		}
		for (int i = aa.length; i < aa.length + bb.length; i++) {
			collectionInt[i] = aa[i - aa.length];
		}
		return collectionInt;

	}

这里合并的数组虽然只写了3个但是理论上可以更多,只需要把需要合并的数组都添加到list中去就可以了。例如:collect.add(dd);



2 , 一个数组分裂成多个数组

/**
	 * tyy
	 * @param dd  要拆分的数组
	 * @param b   每一个拆分的数组的大小
	 * @return
	 */
	private static List<int[]> getListIntArray(int[] dd, int b) {
		List<int[]> aa = new ArrayList<int[]>();
		// tyy 取整代表可以拆分的数组个数
		int f = dd.length / b;
		for (int i = 0; i < f; i++) {
			int[] bbb = new int[b];
			for (int j = 0; j < b; j++) {
				bbb[j] = dd[j + i * b];
			}
			aa.add(bbb);
		}
		return aa;
	}

3整体的代码为

package www.tianren.com;

import java.util.ArrayList;
import java.util.List;

public class java210 {
	public static void main(String[] args) {
		int[] aa = { 0, 6, 4, 5, 24, 3, 4, 56, 2, 34, 5, 3, 2, 2, 34, 5, 3, 2,
				7, 6, 4, 5, 2, 1, 3 };
		int[] bb = { 4, 5, 4, 5, 24, 3, 4, 56, 2, 34, 5, 3, 2, 7, 6, 4, 4, 4,
				4, 4, 4, 4, 4, 4 };
		int[] cc = { 4, 5, 4, 5, 24, 3, 4 };
		int[] dd = getListString(aa, bb, cc);
		List<int[]> ee = new ArrayList<int[]>();
		ee = getListIntArray(dd, 8);
		int[] gg = (int[]) ee.get(0);
		for (int aaaa : gg) {
			System.out.println("eee个数为=" + aaaa);
		}
	}

	/**
	 * tyy
	 * @param dd  要拆分的数组
	 * @param b   每一个拆分的数组的大小
	 * @return
	 */
	private static List<int[]> getListIntArray(int[] dd, int b) {
		List<int[]> aa = new ArrayList<int[]>();
		// tyy 取整代表可以拆分的数组个数
		int f = dd.length / b;
		for (int i = 0; i < f; i++) {
			int[] bbb = new int[b];
			for (int j = 0; j < b; j++) {
				bbb[j] = dd[j + i * b];
			}
			aa.add(bbb);
		}
		return aa;
	}

	// tyy 多个数组合并
	private static int[] getListString(int[] aa, int[] bb, int[] cc) {
		// TODO Auto-generated method stub
		List collect = new ArrayList();
		collect.add(aa);
		collect.add(bb);
		collect.add(cc);
		int[] aa0 = null;
		// tyy 每次都是两个数组合并 所以合并的次数为 collect.size() ,第一个是虚拟的数组
		for (int i = 0; i < collect.size(); i++) {
			int[] aa1 = (int[]) collect.get(i);
			int[] newInt = onArrayTogater(aa0, aa1);
			aa0 = newInt;
		}
		return aa0;
	}

	private static int[] onArrayTogater(int[] aa, int[] bb) {
		// TODO Auto-generated method stub
		if (aa == null) {
			return bb;
		}
		int[] collectionInt = new int[aa.length + bb.length];
		for (int i = 0; i < aa.length; i++) {
			collectionInt[i] = aa[i];
		}
		for (int i = aa.length; i < aa.length + bb.length; i++) {
			collectionInt[i] = aa[i - aa.length];
		}
		return collectionInt;

	}

}

可以自行复制粘贴实验查看结果。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值