我想创建一个从用户菜单(切换循环)调用的排序方法,然后选择实现布尔参数(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);
}
}
答案 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);
}
}