我必须创建一个程序,该程序接受偶数和奇数的数组,并将所有偶数放入一个数组,将所有奇数放入另一个数组。我使用 for 循环来循环遍历所有数字并确定它们是偶数还是奇数,但我遇到的问题是,由于原始数组中的数字是随机的,我不知道偶数的大小或奇数数组,因此无法弄清楚如何将原始数组中的数字分配给偶数/奇数数组,而不会留下一堆点,或者没有足够的点来容纳所有数字。有任何想法吗?
最佳答案
尝试使用ArrayList。您可以使用
num % 2 == 0
查看 num 是偶数还是奇数。如果 == 0 则为偶数,否则为奇数。
List<Integer> odds = new ArrayList();
List<Integer> evens = new ArrayList();
for (int i = 0; i< array.length; i++) {
if (array[i] % 2 == 0) {
evens.add(array[i]);
}
else {
odds.add(array[i]);
}
}
将 ArrayList 转换回数组,您可以这样做
int[] evn = evens.toArray(new Integer[evens.size()]);
(注意:未经测试的代码,因此可能存在一些拼写错误)
编辑:
如果您不允许使用 ArrayList,那么请考虑以下仅使用数组的内容。它的效率不如必须对原始数组进行两次传递
int oddSize = 0;
int evenSize = 0;
for (int i = 0; i< array.length; i++) {
if (array[i] % 2 == 0) {
evenSize++;
}
else {
oddSize++;
}
}
Integer[] oddArray = new Integer[oddSize];
Integer[] evenArray = new Integer[evenSize];
int evenIdx = 0;
int oddIdx = 0;
for (int i = 0; i< array.length; i++) {
if (array[i] % 2 == 0) {
evenArray[evenIdx++] = array[i];
}
else {
oddArray[oddIdx++] = array[i];
}
}
关于java - 如何在java中将数组中的数字排序到两个不同的数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12254145/