我正在进行一项任务,我必须对整数和字符串类型变量进行排序。
所以我有一个声明为
的方法public void quickSort(ArrayList<Entry<Integer, String>> list) {
但如果我想重载方法并使用
public void quickSort(ArrayList<Entry<String, Integer>> list) {
它被认为是重复的。
有没有办法检查我的变量类型是什么? 或者,有没有办法以相同的方式对字符串和整数进行排序,以便我可以执行类似
的操作public void quickSort(ArrayList<Entry<K, V>> list) {
哪个适用于两种日期类型?
答案 0 :(得分:2)
您可能需要提供一个明确的比较器,因为Entry
s没有自然排序:
public <T> void quickSort(ArrayList<T> list, Comparator<? super T> comparator)
然后在方法中使用comparator
进行比较。
您尝试使用两个类型参数(Map.Entry<String, Integer>
或Map.Entry<Integer, String>
)进行排序的事实与泛型视角无关:它只是一种类型,因此您可以用T
替换整个事物。
答案 1 :(得分:1)
对您而言,您可以使用instanceof
关键字检查变量的数据类型。 E.g。
if (variable instanceof String) {
//do stuff
}