为什么 compareTo() 不起作用?
Why Doesn't compareTo() work?
我有两个 ArrayLists:
ArrayList<String> testList = new ArrayList<>();
ArrayList<String> wordList = new ArrayList<>();
它们被传递到方法中:
public static void binSearch(ArrayList a1, ArrayList a2)
在方法里面,我想比较两个ArrayList之间的字符串:
a1.get(i).compareTo(a2.get(newEnd / 2))
但是,我收到一条错误消息:
cannot find symbol
symbol: method compareTo(Object)
location: class Object
我听有人说我需要implements/extends比较,但似乎有些人只是用这个方法做得很好,没有importing/implementing/extending任何东西。
不要使用原始类型。以这种方式声明您的 binSearch
:
public static void binSearch(ArrayList<String> a1, ArrayList<String> a2)
或者如果您想支持任何 Comparable
类型,请引入泛型类型变量:
public static <T extends Comparable<? super T>> void binSearch(List<T> a1, List<T> a2)
我有两个 ArrayLists:
ArrayList<String> testList = new ArrayList<>();
ArrayList<String> wordList = new ArrayList<>();
它们被传递到方法中:
public static void binSearch(ArrayList a1, ArrayList a2)
在方法里面,我想比较两个ArrayList之间的字符串:
a1.get(i).compareTo(a2.get(newEnd / 2))
但是,我收到一条错误消息:
cannot find symbol
symbol: method compareTo(Object)
location: class Object
我听有人说我需要implements/extends比较,但似乎有些人只是用这个方法做得很好,没有importing/implementing/extending任何东西。
不要使用原始类型。以这种方式声明您的 binSearch
:
public static void binSearch(ArrayList<String> a1, ArrayList<String> a2)
或者如果您想支持任何 Comparable
类型,请引入泛型类型变量:
public static <T extends Comparable<? super T>> void binSearch(List<T> a1, List<T> a2)