簡體   English   中英

Java問題; 無法將活動添加到ArrayList <???> 需要幫助

[英]Java issue; can't add activities to an ArrayList<???> Help needed

我正在為星期一准備考試,但沒有答案。 到目前為止,我做得不錯,但現在我被困住了。 我不知所措。 在互聯網上搜索了很長一段時間,但我想念一個小東西。

也許你們可以幫幫我嗎?

問題:我需要將活動放置在日程安排ArrayList <...>中並打印出來,但我不知道如何執行此操作。

我試過了ArrayList Integers String我不知道* *我是怎么做到的:P目標在GarageSimulation中運行SimulationOneDay()。

測試器

public class Tester {
public void equalsTest() {

    Car c1=new Car("Toyota", "Prius", 'p', 1800);
    Car c2=new Car("Citroen", "C5 Tourer", 'd', 2300);
    Car c3=new Car("Toyota", "Prius", 'd', 2050);
    System.out.println(c1.equals(c1));
    System.out.println(c1.equals(c2));
    System.out.println(c1.equals(c3));
    Bicycle b1=new Bicycle("MesserSchmidt", "Targa", false);
    Car c4=new Car("MesserSchmidt", "Targa", 'p', 950);
    System.out.println(c4.equals(b1));

    /* Expected outcome
    true
    false
    true
    false
     */
}

public void simulateOneDayTest() {

    Car c1=new Car("Toyota", "Prius", 'p', 1800);
    Car c2=new Car("Citroen", "C5 Tourer", 'd', 2300);
    Car c3=new Car("Toyota", "Prius", 'd', 2050);
    Bicycle b1=new Bicycle("MesserSchmidt", "Targa", false);
    Car c4=new Car("MesserSchmidt", "Targa", 'p', 950);
    Car c5=new Car("Hummer", "XL", 'd', 5600);
    Car c6=new Car("BMW", "R3", 'd', 6350);
    Car c7=new Car("Citroen", "C5 Tourer", 'd', 2300);

    GarageSimulation gs=new GarageSimulation();
    gs.addVehicle(c1);
    gs.addVehicle(c2);
    gs.addVehicle(c3);
    gs.addVehicle(b1);
    gs.addVehicle(c4);
    gs.addVehicle(c5);
    gs.addVehicle(c6);
    gs.addVehicle(c7);

    gs.simulateOneDay();

    /* Expected outcome
    Eating/drinking takes 15 minutes
    Current time is 8:15
    Visiting the toilet takes 10 minutes
    Current time is 8:25
    Repairing takes 36 minutes
    Current time is 9:01
    Eating/drinking takes 15 minutes
    Current time is 9:16
    Visiting the toilet takes 10 minutes
    Current time is 9:26
    Repairing takes 46 minutes
    Current time is 10:12
    Eating/drinking takes 15 minutes
    Current time is 10:27
    Visiting the toilet takes 10 minutes
    Current time is 10:37
    Repairing takes 41 minutes
    Current time is 11:18
    Eating/drinking takes 15 minutes
    Current time is 11:33
    Visiting the toilet takes 10 minutes
    Current time is 11:43
    Repairing takes 15 minutes
    Current time is 11:58
    Eating/drinking takes 15 minutes
    Current time is 12:13
    Visiting the toilet takes 10 minutes
    Current time is 12:23
    Repairing takes 19 minutes
    Current time is 12:42
    Eating/drinking takes 15 minutes
    Current time is 12:57
    Visiting the toilet takes 10 minutes
    Current time is 13:07
    Repairing takes 112 minutes
    Current time is 14:59
    Eating/drinking takes 15 minutes
    Current time is 15:14
    Visiting the toilet takes 10 minutes
    Current time is 15:24
    Repairing takes 127 minutes
    Current time is 17:31
    Eating/drinking takes 15 minutes
    Current time is 17:46
    Visiting the toilet takes 10 minutes
    Current time is 17:56
    Repairing takes 46 minutes
    Current time is 18:42
    */
}

public void simulateOneDayAndStopOnTimeTest() {
    /*Car c1=new Car("Toyota", "Prius", 'p', 1800);
    Car c2=new Car("Citroen", "C5 Tourer", 'd', 2300);
    Car c3=new Car("Toyota", "Prius", 'd', 2050);
    Bicycle b1=new Bicycle("MesserSchmidt", "Targa", false);
    Car c4=new Car("MesserSchmidt", "Targa", 'p', 950);
    Car c5=new Car("Hummer", "XL", 'd', 5600);
    Car c6=new Car("BMW", "R3", 'd', 6350);
    Car c7=new Car("Citroen", "C5 Tourer", 'd', 2300);

    GarageSimulation gs=new GarageSimulation();
    gs.addVehicle(c1);
    gs.addVehicle(c2);
    gs.addVehicle(c3);
    gs.addVehicle(b1);
    gs.addVehicle(c4);
    gs.addVehicle(c5);
    gs.addVehicle(c6);
    gs.addVehicle(c7);

    gs.simulateOneDayAndStopOnTime();
    */

    /* Expected outcome
    Eating/drinking takes 15 minutes
    Current time is 8:15
    Visiting the toilet takes 10 minutes
    Current time is 8:25
    Repairing takes 36 minutes
    Current time is 9:01
    Eating/drinking takes 15 minutes
    Current time is 9:16
    Visiting the toilet takes 10 minutes
    Current time is 9:26
    Repairing takes 46 minutes
    Current time is 10:12
    Eating/drinking takes 15 minutes
    Current time is 10:27
    Visiting the toilet takes 10 minutes
    Current time is 10:37
    Repairing takes 41 minutes
    Current time is 11:18
    Eating/drinking takes 15 minutes
    Current time is 11:33
    Visiting the toilet takes 10 minutes
    Current time is 11:43
    Repairing takes 15 minutes
    Current time is 11:58
    Eating/drinking takes 15 minutes
    Current time is 12:13
    Visiting the toilet takes 10 minutes
    Current time is 12:23
    Repairing takes 19 minutes
    Current time is 12:42
    Eating/drinking takes 15 minutes
    Current time is 12:57
    Visiting the toilet takes 10 minutes
    Current time is 13:07
    Repairing takes 112 minutes
    Current time is 14:59
    Eating/drinking takes 15 minutes
    Current time is 15:14
    Visiting the toilet takes 10 minutes
    Current time is 15:24
    Repairing takes 127 minutes
    Current time is 17:31
    Exception: Closing time...
    Still 3 activities pending

    */

}

}

GarageSimulation.java

  import java.util.*;

public class GarageSimulation{
private int time;
private static final int START_HOUR=8;
private static final int MIN_IN_HOUR=60;
private static final int TOTAL_MINUTES=480; 
private ArrayList<Vehicle> dayplan;
private EatAndDrink eatdrink;
private Toilet toilet;
private RepairVehicle repair;

public GarageSimulation() {

  ArrayList<Vehicle> dayplan = new ArrayList<Vehicle>();

}

public void addVehicle(Vehicle vehicle) {
  // add eat and drink to dayplanning

  // IT GOES WRONG HERE 

  dayplan.add();// don't know which arguments or how I can add an activity to the arraylist

  // add toilet to dayplanning

  // add repair vehicle to dayplanning

}

public void simulateOneDay() {
  // No clue what im doing here 
  int i = 0;
  while(dayplan.size() > i) {
  // get the activity
  System.out.println(dayplan.get(i));
  System.out.println("Current time is "+showCurrentTime());
  // show the activity and update time

  // Print the current time

  i++;
  }
}

private String showCurrentTime() {
  int hour=START_HOUR+time/MIN_IN_HOUR;
  int min=time%MIN_IN_HOUR;
  if (min<10) 
  return hour+":0"+min;
  else
  return hour+":"+min;
}
}

EatAndDrink.java

public class EatAndDrink implements Activity{
public int showActivityAndReturnTime() {
    System.out.println("Eating/drinking takes 15 minutes");
    return 15;
}
 }

在Toilet.java中也一樣

RepairVehicle.java

public class RepairVehicle implements Activity{
private int time;

public RepairVehicle(Vehicle vehicle) {
  Car c = (Car) vehicle;

  if( vehicle instanceof Car){

  //tijd reperatie auto
  if( c.getFueltype() == 'd'){
  time = (c.getContents()/50) * 2;
  }else{
        time = (c.getContents()/50);
  }

  }else if( vehicle instanceof Bicycle){

  time = 15;
  }

}

@Override
public int showActivityAndReturnTime() {
  System.out.println("Repairing takes "+time+" minutes");
  return time;
}
}

接口Activity.java

public interface Activity
{

public int showActivityAndReturnTime(); 
}

汽車.java

public class Car extends Vehicle {

private char fueltype;
private int contents;

public Car(String brand,String modelname,char fueltype,int contents){
  super(brand,modelname);

  if(fueltype == 'd' || fueltype == 'p'){
  this.fueltype = fueltype;
  }
  if( contents >= 0 ){
  this.contents = contents;
  }else{
  this.contents = 1000;
  }

}

public char getFueltype(){

  return fueltype;
}

public int getContents(){

  return contents;
}

public boolean equals(Object o){
  if (this == o){
  return true;
  }
  if(!( o instanceof Car)){
  return false;
  }    

  Car c = (Car) o;

  return(
  c.brand.equals(this.brand) &&
  c.modelname.equals(this.modelname) 
  );

}

}

我認為在這里顯示出Bicycle.java和Vehicle.java並不是必須的。

希望你們中的一些可以幫助我! 提前致謝!!!!!

dayplan

private ArrayList<Vehicle> dayplan;

然后調用沒有任何參數的add方法。

dayplan.add();

這就是導致編譯錯誤的原因。

您需要將參數傳遞給它, vehicle

dayplan.add(vehicle);

問題出在

dayplan.add(); 

您應該添加車輛

因此將其更改為

dayplan.add(vehicle); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM