如何在Java中实现Arraylist中的二进制搜索过程
我不知道如何在Java的Arraylist中实现二进制搜索过程
有两个arraylist显示机场名称和两个机场名称之间的路线
下面是airportName和Route类的定义
public class AirportName{
private String airportName;
}
public class Route{
private String takeOffPoint;
private String landingPoint;
}
机场名称是Arraylist中(JFK)等机场名称的缩写 路线名称定义为路线对象,包括Arraylist中的起飞点和降落点 (JFK-TLV)
因为每个arraylist中有很多机场名称和路线,其大小超过30000,所以我必须使用二进制搜索来实现代码优化
我已经在不使用二进制搜索的情况下完成了这个过程
我如何通过二进制搜索来实现
下面是我的代码片段
ArrayList<AirportName> airportNames = ShowProcess.getAirports();
ArrayList<Route> routeNamesList = ShowProcess.getAirportRoutes();
航空公司名称
Scanner sc = new Scanner(System.in);
System.out.print("Enter AirportName : ");
String airportName = sc.nextLine();
boolean checkAirportNameValid = false;
for(AirportName airport : airportNames) {
if(airport.getAirportName().equals(airportName)) {
checkAirportNameValid = true;
}
}
路线名称
public static ArrayList<String> searchProcess(String airportName, ArrayList<Route> routeNamesList) {
ArrayList<String> destinationNames = new ArrayList<String>();
for(Route route : routeNamesList) {
if(route.getTakeOffPoint().equals(airportName)) {
destinationNames.add(route.getLandingPoint());
}
}
return destinationNames;
}
共 (0) 个答案