2011-12-30 139 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