我正在研究一种分类数据的方法,该方法有两个参数:
通用
compile 'com.onesignal:OneSignal:3.+@aar' compile 'com.google.android.gms:play-services-gcm:10.2.1' compile 'com.firebase:firebase-client-android:2.5.2+'
和ArrayList
的实例。
Comparator
我想让用户决定是按降序还是按升序排序。我可以通过某种方式将符号传递给public static <T> void insertionSort(ArrayList<T> array, Comparator<T> c) { ... }
吗?我问这个是因为我无法将其他参数添加到我的函数中。
答案 0 :(得分:2)
我想让用户决定是按降序还是按升序排序。
API用户将通过调用方法并传递Comparator<T>
的实例来做出此决定:
insertionSort(list, Comparator.naturalOrder());
insertionSort(list, Comparator.reverseOrder());
不需要额外的参数。
如果您正在设计一个用户输入所需订单的应用程序(我将其命名为input
),则可以使用简单的三元运算符:
insertionSort(list, ">".equals(input) ? naturalOrder() : reverseOrder());