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);
/**
* tyy
* @param dd 要拆分的数组
* @param b 每一个拆分的数组的大小
* @return
*/
private static List getListIntArray(int[] dd, int b) {
List aa = new ArrayList();
// 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;
}
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 ee = new ArrayList();
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 getListIntArray(int[] dd, int b) {
List aa = new ArrayList();
// 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;
}
}