次のようなJavaの 2 次元配列があります。
各要素/ジョブには次のものがあります。
- index[0]にあるジョブ番号;
- index[1]にあるジョブ到着時刻。と
- インデックスのジョブ バースト時間[2]
jobs[0][0] = 1
jobs[0][1] = 0
jobs[0][2] = 5
jobs[1][0] = 2
jobs[1][1] = 2
jobs[1][2] = 19
jobs[2][0] = 3
jobs[2][1] = 4
jobs[2][2] = 10
最初に、インデックス [1]による到着時間に従ってそれらを並べ替えたかったのですが、幸いなことに、次のコードを使用して行いました。
Arrays.sort(jobs, new Comparator<int[]>(){
public int compare(int[] a, int[] b) {
return a[1] - b[1];
}
});
さて、私の問題は、インデックス[2]によるバースト時間に従ってソートしたいということです。これが TWIST です...最初の要素をスキップして、バースト時間 (インデックス [2]) に従って並べ替えるにはどうすればよいですか? job[0] を配列の上に残し、残りの要素を index[2] - バースト時間で並べ替えたいと思います。このような:
jobs[0][0] = 1
jobs[0][1] = 0
jobs[0][2] = 5
jobs[1][0] = 3
jobs[1][1] = 4
jobs[1][2] = 10
jobs[2][0] = 2
jobs[2][1] = 2
jobs[2][2] = 19
ジョブは、ジョブ 1 が一番上にあるバースト時間で並べ替えられています。上記で提供したコードで実装すると、はるかに優れたものになります。ありがとう