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

时间:2019-08-26 08:26:57

标签: 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进行排列,则首先打印AT较低的那个以及其ID等。该顺序是从最小到最大AT。

如果我想像AT一样基于CBT进行排列,它将按照从最小到最大的顺序打印,但是如果存在多个彼此相等的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");
    }
  }
}

这些是基于我给定示例的实际输出

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

1 个答案:

答案 0 :(得分:1)

如果使用Java,首先应避免使用多维数组并创建对象。 您可以使用Collections框架来简化这些操作。

更多内容,请阅读此http://www.javapractices.com/topic/TopicAction.do?Id=10或同一主题的文章,以了解自定义排序顺序等。

相关问题