Java语言创建多个int数组比方说第一个数组有10个元素{0,1,2,3,4,5,6,7,8,9}第二个数组有9个元素

比方说第一个数组有10个元素{0,5,2,3,1,5,6,7,6,9}第二个数组有9个元素每个元素是上一个数组的元素的和依次相加这样{5,7,5,4,6,11,13,13,15}第三个数组8个元素{12,12,9,10,17,24,26,28}第四个数组7个元素{24,21,19,27,41,50,54}一直创建到最后一个数组只有一个元素为止。。。谢谢了

import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args) {
int[] arr= {0,5,2,3,1,5,6,7,6,9};
set(arr);//递归,简单,通俗易懂!
}
private static int[] set(int[] arr) {
System.out.println(Arrays.toString(arr));
int[] tem=new int[arr.length-1];
if(arr.length==1) {
return arr;
}else {
for (int i = 0; i < tem.length; i++)
tem[i]=arr[i]+arr[i+1];
return tem=set(tem);
}
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-02

/**
随便写了一个,其实还有很多方法。利用迭代器的思想实现还是很容易的
。其实还可以用递归。你可以思考试一试!
如果满意的话,请采纳。谢谢🙏
*/


import java.util.ArrayList;
import java.util.List;
public class ArrayCreator {
    private int[] array;
    public void setArray(int[] array) {
        this.array = array;
    }
    /**
     * 如果没有下一个则返回null
     * @return
     */
    public int[] next(){
        if(array.length == 1)
            return null;
        int[] temp = new int[array.length - 1];
        for (int i = 0; i < array.length - 1; i++) {
            temp[i] = array[i] + array[i + 1];
        }
        this.setArray(temp);
        return temp;
    }
    public static void main(String[] args) {
        int[] array = {0, 5, 2 ,3, 1, 5, 6, 7, 6, 9};
        ArrayCreator arrayCreator = new ArrayCreator();
        arrayCreator.setArray(array);
        do{
            printArray(array);
            array = arrayCreator.next();
        }while (array != null);
    }
    public static void printArray(int[] array){
        List<Integer> temp = new ArrayList<>();
        for (int i : array) {
            temp.add(i);
        }
        System.out.println(temp);
    }
}

第2个回答  2018-04-02
import java.util.Arrays;
import java.util.stream.IntStream;
public class Test {
public static void main(String[] args) {
int[] a= {0,5,2,3,1,5,6,7,6,9};
System.out.println(Arrays.toString(a));
do {
 a=mergeByOne(a);//每需要合并一次就运行一次
 System.out.println(Arrays.toString(a));
}while(a.length>1); 
}
static public int[] mergeByOne(final int[] a){
return IntStream.range(0, a.length-1)
.parallel().map(i-> a[i]+a[i+1]).toArray();
}
}

[0, 5, 2, 3, 1, 5, 6, 7, 6, 9]
[5, 7, 5, 4, 6, 11, 13, 13, 15]
[12, 12, 9, 10, 17, 24, 26, 28]
[24, 21, 19, 27, 41, 50, 54]
[45, 40, 46, 68, 91, 104]
[85, 86, 114, 159, 195]
[171, 200, 273, 354]
[371, 473, 627]
[844, 1100]
[1944] 


Java >8代码