在第一个中按变量排序数组然后按降序排序

时间:2011-12-30 19:22:18

标签: java arrays swing sorting comparator

嘿,伙计们,这是我的问题。 即时通讯使用JCombobox。 如果学生在课程中有CB等级,则应首先出现在jcombobox中,如CB AA BA BB CC DC DD FD FF 如果学生有DD等级,则应该显示为DD AA BA BB CB CC DC FD FF。

这里是所有数组成员

String [] subset = new String [] {“AA”,“BA”,“BB”,“CB”,“CC”,“DC”,“DD”,“FD”,“FF”};

如果学生在课程数组中具有BB等级,则应该按照BB AA BA BB CB CC DC DD FD FF进行分类。这些均值数组应该按照数组的第一个元素中的学生成绩进行排序。那么它应该按降序排序。

我问排序arrray,因为jcombobox正在努力。 是否有这样做的功能或方法?

感谢。

3 个答案:

答案 0 :(得分: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;
}

我没有测试它,但我认为它有用。

答案 1 :(得分:0)

您始终可以使用Arrays.sort()根据给定的Comparator对数组中的元素进行排序,在这种情况下,您需要制作比较器以满足您的需求。

答案 2 :(得分: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);
                }

            }



        };