我有3个班。我正在学习接口,接口类TravelCost必须具有公共抽象和方法类型和名称,以便它们在所有三个类中保持一致。三类(AirTravelCost,TrainTravelCost,CarTravelCost)将实施TravelCost。我拥有所有的设置和测试工作。但是,我假设的测试页面是您通过arrayList输入搜索的最低成本和最短持续时间。我不知道该怎么做,因为我从来没有在ArrayList中做过这件事。在这里,在测试类中的示例代码:如何通过ArrayList搜索最低数量和最短持续时间?
import java.util.*;
public class TestTravelCost
{
public static void main(String [] args)
{
/*Scanner scn = new Scanner(System.in); //scanner object
System.out.println("Number of Miles: ");
double numOfMiles = scn.nextDouble();
System.out.println("Hotel cost per night: ");
double cost = scn.nextDouble();
System.out.println("Description: ");
String description = scn.nextLine();*/
TravelCost c = new CarTravelCost(400, 200, "Boston");//instantiate object for car travel
TravelCost t = new TrainTravelCost(6, 60.0, "Boston"); //instantiate object for train travel
TravelCost a = new AirTravelCost(224, "20110103", "0743" , "20110103", "1153", "Boston");//instantiate object for air travel
ArrayList<TravelCost> AL = new ArrayList<TravelCost>();//array list for car travel
AL.add(c);
AL.add(t);
AL.add(a);
for(TravelCost tc : AL)
{
System.out.println(tc.toString());
}
}
}
输出: 汽车旅行波士顿将采取7.2727272727272725小时,耗资210.0
火车前往波士顿将采取6.0小时,耗资70.0
航空旅行到波士顿会采取1.0166666666666666和成本243.48888888888888 //这是不正确的计算,我不知道我错在哪里,但它假设是最短的持续时间相同。我想我不擅长数学。
下面是我用于航空旅行
public double getDuration()
{
//---DEPARTURE---//
int Dyear = Integer.parseInt(departureDate.substring(0,3)); //2011
int Dmonth = Integer.parseInt(departureDate.substring(4,5));//01
int Dday = Integer.parseInt(departureDate.substring(6,7));//03
int Dhour = Integer.parseInt(departureTime.substring(0,1));//0743
int Dminute = Integer.parseInt(departureTime.substring(2,3));//1153
//---ARRIVAL---//
int Ayear = Integer.parseInt(arrivalDate.substring(0,3)); //2011
int Amonth = Integer.parseInt(arrivalDate.substring(4,5));//01
int Aday = Integer.parseInt(arrivalDate.substring(6,7));//03
int Ahour = Integer.parseInt(arrivalTime.substring(0,1));//0743
int Aminute = Integer.parseInt(arrivalTime.substring(2,3));//1153
GregorianCalendar date = new GregorianCalendar(Dyear, Dmonth, Dday, Dhour, Dminute);//departure date & time
GregorianCalendar time = new GregorianCalendar(Ayear, Amonth, Aday, Ahour, Aminute);//arrival date & time
//date = arrivalDate - departureDate;//2011-01-03 - 2011-01-03 = 0
//time = arrivalTime - departureTime;//0734 - 1153 = 410
double duration = (Math.abs(date.getTimeInMillis() - time.getTimeInMillis())/60000.0)/60.0;
return duration;
`enter code here` }
的计算方法如何得到这样的结果在我的代码?
最低的成本:火车旅行波士顿将采取11.0小时,耗资70.0
时间最短:航空旅行波士顿将采取4.166666666666667小时耗资234.0