Java 根据特定条件对数组进行排序
我们有一个关于排序ID、到达时间、CPU突发时间和优先级的家庭作业,我只是在排序部分遇到了一个问题,我真的需要一些帮助。此外,ID、AT、CBT和Prio的值取决于用户输入。我还使用二维数组来存储ID、AT、CBT和P 比如说Java 根据特定条件对数组进行排序,java,Java,我们有一个关于排序ID、到达时间、CPU突发时间和优先级的家庭作业,我只是在排序部分遇到了一个问题,我真的需要一些帮助。此外,ID、AT、CBT和Prio的值取决于用户输入。我还使用二维数组来存储ID、AT、CBT和P 比如说 ID: 98 AT: 50 CBT: 60 P(1 is the highest & 5 is the lowest): 1 ID: 99 AT: 55 CBT: 51 P: 1 如果我想安排它的基础上,较低的一个AT将首先打印连同它的ID等。顺序将从至少到最
ID: 98
AT: 50
CBT: 60
P(1 is the highest & 5 is the lowest): 1
ID: 99
AT: 55
CBT: 51
P: 1
如果我想安排它的基础上,较低的一个AT将首先打印连同它的ID等。顺序将从至少到最大的AT
如果我想根据CBT来安排,就像AT一样,它会从最小到最大打印,但是如果有多个CBT彼此相等,他们的AT会决定谁先打印
如果我根据优先级进行排列,值为1的prio将首先打印到5,但是如果有多个值相同的prio,他们的CBT将决定谁将首先打印,但是如果他们的CBT也相同,则由AT决定
我想学习如何使用java实现它
if(userchoice == '1'){
//infos[a][1] is where the AT value stored
if(infos[0][1] < [1][1] && infos[0][1] < infos[2][1] &&....infos[4][1]){
for(int b = 0;b<4;b++){
System.out.print(infos[0][]+"\t");
}
}
System.out.println();
if(infos[1][1] > infos[0][1] && infos[1][1] < infos[2][1] &&....infos[4][1]){
for(int b = 0;b<4;b++){
System.out.print(infos[1][b]+"\t");
}
}
}
如果您使用Java,首先要避免使用多维数组并创建对象。 您有一个集合框架来简化这些工作
更多信息,请阅读本文或有关同一主题的文章,以了解定制排序顺序等内容 您是否必须实现自己的排序算法,或者可以使用一些内置排序方法?像
Collections.sort()
?如果您的对象实现了Comparable
,可能会重复使用,或者如果您开始使用特定的类,您可以使用。我还没有尝试过这些,但最终会尝试您的建议。谢谢不要通过外部链接提供答案。当链接消失时,你的答案也随之消失。作为一个余数,请参见,但这不会使我的代码更容易排序吗?因为有多个值,我必须根据不同的条件移动。
Arranged using AT:
ID: 98
AT: 50
CBT: 60
P: 1
ID: 99
AT: 55
CBT: 51
P: 1
Arranged using CBT:
ID: 99
AT: 55
CBT: 51
P: 1
ID: 98
AT: 50
CBT: 60
P: 1
Arranged using P:
ID: 99
AT: 55
CBT: 51
P: 1
ID: 98
AT: 50
CBT: 60
P: 1