在Java

时间:2015-06-15 15:56:01

标签: java arrays

我正在尝试从输入数组中识别3的倍数 并将这些倍数插入到输出数组中。使用count变量我可以声明输出数组。 但是,如何将多个插入输出数组?。

public class MultipleOfThreeInAnArray {

static int count;
static int[] result;


public static void choseMultiplesOfThree(int[] input) {

    for (int i = 0; i < input.length; i++) {

        if (input[i] % 3 == 0) {
            count++;

            // insert into output array?
            int[] result = new int[count];

        }
    }
public static void main(String[] args) {
       int[] input = { 3, 2, 5, 6, 9, 30 };
       choseMultiplesOfThree(input);

    }
}

2 个答案:

答案 0 :(得分:0)

public class MultipleOfThreeInAnArray {
    public static void choseMultiplesOfThree(int[] input) {
        int[] output = new int[input.length];
        int index = 0;
        for (int i = 0; i < input.length; i++) {
            if (input[i] % 3 == 0) {
                output[index++] = input[i];
            }
        }
        System.out.println(Arrays.toString(output));
    }

    public static void main(String[] args) {
        int[] input = {3, 2, 5, 6, 9, 30};
        choseMultiplesOfThree(input);
    }
}

我建议你使用List而不是数组。

public class MultipleOfThreeInAnArray {
    public static void choseMultiplesOfThree(int[] input) {
        List<Integer> output = new ArrayList<Integer>();
        for (int i = 0; i < input.length; i++) {
            if (input[i] % 3 == 0) {
                output.add(input[i]);
            }
        }
        System.out.println(output);
    }

    public static void main(String[] args) {
        int[] input = {3, 2, 5, 6, 9, 30};
        choseMultiplesOfThree(input);
    }
}

答案 1 :(得分:0)

您可以使用list来插入这些元素,然后最后使用array方法将此.toArray转换为public class MultipleOfThreeInAnArray { static Integer[] result; List<Integer> list = new ArrayList<Integer>(); public static void choseMultiplesOfThree(int[] input) { for (int i = 0; i < input.length; i++) { if (input[i] % 3 == 0) { // insert into output array list.add(Integer.valueOf(input[i])); } } result = list.toArray(new Integer[list.size()]); } public static void main(String[] args) { Integer[] input = { 3, 2, 5, 6, 9, 30 }; choseMultiplesOfThree(input); } }

List

这应该可以解决问题,并注意你必须使用整数array

编辑:

如果您想使用int ArrayUtils,您可以:

1 - 使用 apache commons中的int[] result = ArrayUtils.toPrimitive(list.toArray(new int[list.size()]));

int

2 - 循环遍历列表元素并将其放入array int[] result = new int[list.size()]; int i = 0; for (Integer e : list) { result[i] = e.intValue(); i++; } return result;

{{1}}