Java 如何同时进行字符串和值排序

Java 如何同时进行字符串和值排序,java,arrays,sorting,Java,Arrays,Sorting,我想对一个计算结果进行排序,其中有一个字符串和值,排序过程成功,但字符串有问题。字符串不在值后面​​已经在上一次排序中。如何处理?getNamaDosen作为字符串,nilaiDosen作为值,getJumlahBakcal作为数据量 代码程序: Object[][] data2 = new Object[getJumlahBakcal()][2]; Double [] nilaiDosen = new Double[getJumlahBakcal()]; for(int a=0; a<

我想对一个计算结果进行排序,其中有一个字符串和值,排序过程成功,但字符串有问题。字符串不在值后面​​已经在上一次排序中。如何处理?getNamaDosen作为字符串,nilaiDosen作为值,getJumlahBakcal作为数据量

代码程序:

Object[][] data2 = new Object[getJumlahBakcal()][2];
Double [] nilaiDosen = new Double[getJumlahBakcal()];

for(int a=0; a<nilaiDosen.length; a++){
   for(int b=0; b<nilaiDosen.length-1; b++){
      if(nilaiDosen[b]<nilaiDosen[b+1]){
        double temp = nilaiDosen[b];
        nilaiDosen[b] =nilaiDosen[b+1];
        nilaiDosen[b+1] = temp;
      }
      for (int i = 0; i < getJumlahBakcal(); i++) {
          for (int j = 0; j < 3; j++) {
              if (j == 0) {
                  data2[i][j] = getNamaDosen()[i];
              } else if (j == 1) {
                  data2[i][j] = (nilaiDosen[i]);  
                }
           }
       }
    }
}
String[] header = {"Nama Dosen", "Prefensi"};
DefaultTableModel dtm = new DefaultTableModel(data2, header);
analisaVW.getRank().setModel(dtm);
图片说明:

字符串不在值后面​​已在上一次排序中进行了排序

因为,您只是在交换值。所以,您还需要遵循字符串值。然后,您应该同时交换字符串

我想,这就是交换值的地方

  if(nilaiDosen[b]<nilaiDosen[b+1]){
    double temp = nilaiDosen[b];
    nilaiDosen[b] =nilaiDosen[b+1];
    nilaiDosen[b+1] = temp;
   // include code here to swap Sting value using same index
  }

现在,在交换值的同时,还应该交换字符串值。

这是一个使用对象而不是并行数组的好时机。@chrylis我同意,但树形图也可能更好,因为有了比较器,他甚至不需要方法来排序这些信息。另外,地图更直观,我们喜欢直观的代码。感谢您的回复,如何同时交换字符串和值?@kuroashi您还没有共享字符串数组/集合所在的代码。那么我怎么才能告诉你字符串数组在getNamaDosen函数中,它的值在数据库中