2011-12-30 169 views
2

嘿,這裏的人是我的問題。 即時通訊使用JCombobox。 如果學生在本課中有CB成績,則應該首先出現在jcombobox中,如果學生具有DD等級,則應該像那樣顯示DD AA BA BB CB CB CC DC FD FF。按變量排序數組然後按降序排列

這裏所有數組成員

字符串[]子集=新的String [] { 「AA」, 「BA」, 「BB」, 「CB」, 「CC」, 「DC」, 「DD」, 「FD」,「FF」};

如果學生在課程中有BB等級,應按此排序BB AA BA BB CB CC DC DD FD FF。這些平均數組應該按照數組的第一個元素中的學生成績排序。那麼它應該按降序排序。

我問排序arrray,因爲jcombobox的工作。 有沒有這樣的功能或方法?

謝謝。

+0

分類標準根本不明確。請更好地解釋你需要什麼,並展示幾個例子 – 2011-12-30 19:41:22

回答

1

如何:

public static String[] getCustomSortArray(String grade, String[] grades) 
{ 
    int index = -1; 
    for(int i = 0; i < grades.length; i++) 
    { 
     if(grades[i].equals(grade)) 
     { 
      index = i; 
      break; 
     } 
    } 

    if(index == -1) return grades; 

    String temp = new String[grades.length]; 
    temp[0] = grades[index]; 

    int counter = 1; 
    for(int i = 0; i < grades.length; i++) 
    { 
     if(i != index) temp[counter++] = grades[i]; 
    } 
    return temp; 
} 

我沒有測試它,但我認爲它的工作原理。

+0

即時通訊試圖測試你的方法,但日食讓我空指針異常。試圖解決它 – Beyaz 2011-12-30 20:33:39

+0

謝謝,我終於得到它workink你酷男:D:D我沒有足夠的重複投票你。每當我有15個代表,我會非常感謝你 – Beyaz 2011-12-30 20:59:46

+0

@ user1091692不客氣,你可以至少接受這個答案,通過檢查正確的標記:) – 2011-12-30 22:00:44

0

您可以隨時使用Arrays.sort()按照給定的Comparator對數組中的元素進行排序,在這種情況下,您需要製作比較器以滿足您的需求。

0

對於可以使用的排序數組,它使用Comparable接口的compareTo()方法進行排序。

Arrays.sort(array); 

對於降序排序,您可以使用Collections.reverseOrder()比較器。

如果我理解你對這個比較器可以爲你工作。

 Object yourComparator = new Comparator<Comparable<Object>>() { 
      @Override 
      public int compare(Comparable<Object> c1, Comparable<Object> c2) { 
       if(c1.equals(variable)){ 
        return 1; 
       } 
       else if(c2.equals(variable)){ 
        return -1; 
       } 
       else { 
        return c2.compareTo(c1); 
       } 

      } 



     }; 
+0

我想先按變量排序,然後按照排序順序排序。 – Beyaz 2011-12-30 19:29:48

+0

你說'變量'是什麼意思?什麼變量? – 2011-12-30 19:36:20

+0

CB在這裏是第一個變量:如果學生在本課中有CB成績,它應該首先出現在jcombobox中,就像CB AA BA BB CC DC DD FD FF如果學生有DD等級,DD在這裏是第一個變量:它應該如DD AA BA BB CB CC DC FD FF所示。 – Beyaz 2011-12-30 19:42:46