我已经尝试了相关问题的所有答案,如下所示:
我为此使用以下代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class SearchingThread extends Thread {
private String search;
private ArrayList<Vehicle> vehicles;
public SearchingThread(String search, ArrayList<Vehicle> vehicles) {
this.search = search;
this.vehicles = vehicles;
}
public void run() {
Comparator<Vehicle> comp = new Comparator<Vehicle>() {
@Override
public int compare(Vehicle o1, Vehicle o2) {
return o1.getModel().compareTo(o2.getModel());
}
};
int index = Collections.binarySearch(vehicles, search, comp);
}
}
这里search
是具有模型
的变量,我希望在ArrayListvehicles
中搜索该变量。
为此,我得到以下错误:
编辑:
很抱歉之前没有发布这个,排序不是一个问题。我事先已经对数组列表进行了相应的排序。
Collections#BinarySearch
搜索列表
中包含的相同类型的值。在这里,您试图用字符串搜索车辆列表,从而得到共享的错误。
一种方法是创建一个假车辆,以便可以搜索其模型:
Vehicle modelDummy = new Vehicle();
modelDummy.setModel(search);
int index = Collections.binarySearch(vehicles, modelDummy, comp);
请注意,为了像这样使用binarysearch
,列表必须根据您提供的comparator
进行排序(即,在本例中根据模型进行排序)。如果这个假设不是真的,你必须使用O(n)搜索。例如:
Vehicle vehicle = vehicles.stream().filter(v -> v.getModel().eqauls(search)).findFirst();
对于我当前的项目,我必须搜索ArrayList of ZipCode对象,以便找到距离用户输入的int zip最远的ZipCode。 下面是编写我遇到问题的方法的说明:public ZipCode findfurtwest(int-pZip)-查找距离提供的邮政编码最远的ZipCode。如果未找到邮政编码,则返回null。例如,距离邮政编码75234最远的是ADAK,AK 99546。 在我的代码
PS:如果您想知道为什么中的签名看起来像它们的样子,这里有一个解释:集合的这两个通用签名有何不同。BinarySearch? PPS:曾经有一个答案(现在删除了),您不能在需要的地方传递。好吧,我相信您可以,下面是我的QuickSort的工作实现,它可以做到这一点:https://github.com/all3fox/algos-java/blob/481f2c71952bf2c7510cb93c
我需要在数组上使用二进制搜索来找到它们的索引。我能够做到这一点,但是我现在需要使用数组类型为Integer而不是int的对象。 这里有一个问题:“为binarySearch方法提供代码,记住它接收的参数是Object type Object,如果其中任何一个用于调用compareTo方法,则必须首先将其强制转换为可比或原始对象类型。”
问题内容: 使用示例: 假设我有一个课堂电话。我还有另一个上课电话。 类的ArrayList为。 要遍历.. 的Arraylist而不是这样做: 我们可以像这样简单地遍历ArrayList : 现在,我要迭代并打印出所有第3个对象: 现在我的问题是: 与使用常规的for循环不同,我如何使用ArrayList迭代打印出枪支对象列表? 问题答案: 您要遵循与以前相同的模式: 在这种情况下,它将是:
问题内容: 给出: 给出: 是否有准备使用的库/代码来完成它? 问题答案: 您将无法使用JSON.stringify序列化事件对象,因为事件对象包含对DOM节点的引用,并且DOM在各处都有循环引用(例如,子/父关系)。JSON默认情况下无法处理这些,因此您有点不走运。
描述 person.java personrepository.java qualification.java