您好,我想创建一个从用户菜单调用的排序方法。 java的

时间:2017-11-05 21:51:50

标签: java

我想创建一个从用户菜单(切换循环)调用的排序方法,然后选择实现布尔参数(true =升序,flase =降序)。我对布尔方面感到困惑

Sorting method:

    // Select ascending sort or descending sort based on 
    // passed boolean parameter

//-------------------------------------------------------------------------

public void sortStringArray(){

    //      boolean updown = false;


            System.out.println("Before Sorting: ");
            for(String string : list) {
                System.out.println(string);
            }
            Arrays.sort(list);

            System.out.println("Ascending Sort of String Array, A to Z: ");
                for (String string : list) {
                    System.out.println(string);
                }
                Arrays.sort(list, Collections.reverseOrder());

            System.out.println("Descending Sort of String Array, Z to A: ");
            for (String string : list) {
                    System.out.println(string);
            }

        }

3 个答案:

答案 0 :(得分:0)

为什么不用if语句来做?

例如:

boolean check = true;

if (check) {
    Arrays.sort(list);
    System.out.println("Ascending Sort of String Array, A to Z: ");
    for (String string : list) {
        System.out.println(string);
    }
} else {
    Arrays.sort(list, Collections.reverseOrder());
    System.out.println("Descending Sort of String Array, Z to A: ");
    for (String string : list) {
        System.out.println(string);
    }
}

答案 1 :(得分:0)

您应该将布尔值作为方法的参数。所以而不是:

public void sortStringArray()

这将是:

public void sortStringArray(boolean ascending)

然后,您可以检查ascending以确定对其进行排序的方式。

答案 2 :(得分:0)

在最简单的实现中,它应该像这样工作:

public void sortStringArray(boolean updown){
        System.out.println("Before Sorting: ");
        print();

        if(updown){
            Arrays.sort(list);
            System.out.println("Ascending Sort of String Array, A to Z: ");  
        } else {
            Arrays.sort(list, Collections.reverseOrder());
            System.out.println("Descending Sort of String Array, Z to A: ");
        }
        print();  
    }

private void print(){
   for (String value: list) {
      System.out.println(value);
   }
}