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);
/** * 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; } }
可以自行复制粘贴实验查看结果。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: java 合并两个数组 三种解法
- 下一篇: Java合并两个有序数组