按变量排序数组然后按降序排列
问题描述:
嘿,这里的人是我的问题。 即时通讯使用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的工作。 有没有这样的功能或方法?
谢谢。
答
如何:
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;
}
我没有测试它,但我认为它的工作原理。
答
对于可以使用的排序数组,它使用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);
}
}
};
分类标准根本不明确。请更好地解释你需要什么,并展示几个例子 – 2011-12-30 19:41:22