簡體   English   中英

首先對Array By變量進行排序,然后按降序對其進行排序

[英]Sort Array By variable in the first then sort it descending order

大家好,這是我的問題。 即時通訊使用JCombobox。 如果學生在本課程中獲得CB成績,則應首先出現在jcombobox中,例如該CB AA BA BB CC DC DD FD FF如果該學生具有DD成績,則應顯示為DD AA BA BB CB CC DC FD FF 。

這里所有數組成員

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

如果學生在課程組中獲得BB成績,則應按照BB AA BA BB CB CC DC DD FD FF的順序進行排序。 這些平均數組應在數組的第一個元素中按學生成績排序。 然后應按降序排序。

我問排序錯誤,因為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;
}

我沒有測試它,但我認為它可行。

您始終可以使用Arrays.sort()根據給定的Comparator對數組中的元素進行排序,在這種情況下,您需要根據自己的需要設計比較器。

對於可以使用的數組排序,它使用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);
                }

            }



        };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM