gpt4 book ai didi

java - 数组列表排序

转载 作者:行者123 更新时间:2023-12-01 17:58:40 25 4
gpt4 key购买 nike

我需要使用数组列表对偶数和奇数进行排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

public class SortedEvensAndOdds {

public static void main(String[] args) {
Random rnd = new Random();
ArrayList<Integer> evenPrint = new ArrayList<Integer>();
ArrayList<Integer> oddPrint = new ArrayList<Integer>();
int odd[] = new int[25];
int numOdd = 0;
int even [] = new int[25];
int numEven = 0;
for (int i=0;i<25;i++) {
int num = rnd.nextInt((100 - 1) + 1) + 1;
if (num%2 ==0) {
even[numEven] = num;
numEven++;
}
else {
odd[numOdd] = num;
numOdd++;
}
}
for (int i = 0; i < even.length; i++)
evenPrint.add(even[i]);
for (int i = 0; i < even.length; i++)
oddPrint.add(odd[i]);
Collections.sort(evenPrint);
Collections.sort(oddPrint);
System.out.println("Even:");
for (int i=0;i<numEven;i++)
System.out.print(evenPrint.get(i) + " ");
System.out.println("\nOdd:");
for (int i=0;i<numOdd;i++)
System.out.print(oddPrint.get(i) + " ");


}
}

这是我的输出

Even:
0 0 0 0 0 0 0 0 0 6 6 14 28 36 38 54
Odd:
0 0 0 0 0 0 0 0 0

如何防止全为 0

顺便说一句,如果我取出“Collections.sort()”方法,它将是

Even:
16 32 22 54 90 70 50 60 40 12 60 78 86 52
Odd:
59 35 53 35 87 67 75 33 75 59 87

所以这告诉我排序出了问题请帮忙

最佳答案

当你创建一个像这样的数组时:int odd[] = new int[25];你得到的是一个由 0 组成的数组,其中有 25 个。这是因为 int 不能为 null。

因此,当您对数组末尾的所有零进行排序时,它们都会移至数组 fe 的开头。在将 1,5,9,13,19,0,0,0,0 排序为 0,0,0,0,1,5,9,13,19 之前code> 并且因为您只打印到索引,您知道您在那里分配了号码

for (int i=0;i<numEven;i++) 
System.out.print(evenPrint.get(i) + " ");

注意 numEven。它没有打印整个数组。要打印整个数组,您应该使用:

for (int i = 0; i < evenPrint.size(); i++)
System.out.print(evenPrint.get(i) + " ");

你会得到这样的结果:

0 0 0 0 0 0 0 0 0 0 0 0 10 32 32 38 40 50 60 64 70 74 82 88 96

如何防止这种情况发生?

不要将数组的每个元素都放入列表中。变化:

for (int i = 0; i < even.length; i++)
evenPrint.add(even[i]);
for (int i = 0; i < even.length; i++)
oddPrint.add(odd[i]);

至:

for (int i = 0; i < numEven; i++)
evenPrint.add(even[i]);
for (int i = 0; i < numOdd; i++)
oddPrint.add(odd[i]);

关于java - 数组列表排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42638296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com