Java 根据特定条件对数组进行排序

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、到达时间、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等。顺序将从至少到最大的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