Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么';t比较工作?_Java_Generics_Arraylist_Compareto - Fatal编程技术网

Java 为什么';t比较工作?

Java 为什么';t比较工作?,java,generics,arraylist,compareto,Java,Generics,Arraylist,Compareto,我有两个ArrayList: ArrayList<String> testList = new ArrayList<>(); ArrayList<String> wordList = new ArrayList<>(); 在方法内部,我想比较两个ArrayList之间的字符串: a1.get(i).compareTo(a2.get(newEnd / 2)) 但是,我收到一条错误消息: cannot find symbol symbol: met

我有两个ArrayList:

ArrayList<String> testList = new ArrayList<>();
ArrayList<String> wordList = new ArrayList<>();
在方法内部,我想比较两个ArrayList之间的字符串:

a1.get(i).compareTo(a2.get(newEnd / 2))
但是,我收到一条错误消息:

cannot find symbol
symbol: method compareTo(Object)
location: class Object

我听一些人说我需要实现/扩展Comparable,但似乎有些人在没有导入/实现/扩展任何内容的情况下就可以很好地使用该方法。

不要使用原始类型。通过以下方式声明您的
b搜索

public static void binSearch(ArrayList<String> a1, ArrayList<String> a2)

不要使用原始类型。通过以下方式声明您的
b搜索

public static void binSearch(ArrayList<String> a1, ArrayList<String> a2)

ArrayList
(不带泛型)不实现
compariable
(或者有一个名为
comparieto(Object)
)的方法。您需要提供一个自定义比较器,或者将方法签名更改为类似于
public static void bin搜索(ArrayList a1,ArrayList a2)
@abdelhak newEnd是一个保存ArrayList索引的int,因为它是一个执行二进制搜索的方法
ArrayList
(不带泛型)不实现
Comparable
(或有一个名为
compareTo(Object)的方法)
。您需要提供一个自定义比较器,或者将方法签名更改为类似于
公共静态void bin搜索(ArrayList a1、ArrayList a2)的内容
@abdelhak newEnd是一个保存ArrayList索引的int,因为它是一个进行二进制搜索的方法。非常感谢!!它正是我所寻找的,并且工作得非常完美。非常感谢!!它正是我所寻找的,而且工作得非常完美。
public static <T extends Comparable<? super T>> void binSearch(List<T> a1, List<T> a2)