创建一个数字数组而不循环?

时间:2012-08-15 05:44:10

标签: java arrays loops javamail

好的,我正在使用JavaMail库,我正在尝试获取某些消息号。我想有效地做到这一点而不必在某些东西上循环两次......无论如何,我的问题是:如何创建一个从索引x开始并在索引x - 11结束而不循环的数组? / p>

2 个答案:

答案 0 :(得分:7)

如果要创建和填充数组,基本上有三个选项:

  1. 明确写出值:int[] nums = new int[] { 0, 1, 2, 3, 4, ... }

  2. 使用某种形式的for-loop:for (int i = 0; i < 10; i++) { nums[i] = i; }

  3. 递归创建:

  4. int[] nums = new int[12];
    nums = populate(0, x, nums);
    
    private int[] populate(int index, int x, int[] nums) {
        if (nums.length >= index) {
            return nums;
        } else {
            nums[index] = x - index; // x-0 through x-11
            return populate(index+1, x, nums);
        }
    }
    

    Vanilla Java,没有额外的库和诸如此类的东西,不支持map函数,它允许你指定一个以某种方式自动生成你的值的函数。

    虽然,我真的不明白为什么你不想使用循环,特别是对于像这样的小事。

答案 1 :(得分:2)

int[] myArray = new int[] {x, x-1, x-2, x-3, x-4, x-5, x-6, x-7, x-8, x-9, x-10, x-11};