我正在研究一种对具有两个参数的数据进行排序的方法:
a generic
ArrayList
and an instance ofComparator
.
public static <T> void insertionSort(ArrayList<T> array, Comparator<T> c) { ... }
我想让用户决定是按降序还是升序排序。我可以通过以某种方式将符号传递给 Comparator
来实现吗?我问这个是因为我无法将其他参数添加到我的函数中。
最佳答案
I would like to let the user decide if sort in descending or ascending order.
API 用户将通过调用方法并传递 Comparator<T>
的实例来做出此决定。 :
insertionSort(list, Comparator.naturalOrder());
insertionSort(list, Comparator.reverseOrder());
不需要额外的参数。
如果您正在设计一个用户输入所需顺序(我将其命名为 input
)的应用程序,则可以使用一个简单的三元运算符:
insertionSort(list, ">".equals(input) ? naturalOrder() : reverseOrder());
关于java - 将 "<"或 ">"作为参数传递给比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49793924/