我正在尝试从输入数组中识别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);
}
}
答案 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}}