gpt4 book ai didi

java - 使对象同时运行

转载 作者:行者123 更新时间:2023-12-02 09:27:20 25 4
gpt4 key购买 nike

我有 5 个巴士对象和 15 个巴士站对象。该程序的运行方式应使所有 5 个公交车对象在公交车站之间同时运行。

enter image description here

在输出中,第一个总线对象运行了预期的时间,并在第二个总线运行之前停止,并一直持续到第 5 条总线。 但是,我需要所有公交车在公交车站之间同时运行并同时 parking 。

巴士类别

public class Bus {
int capacity;
int bus_id=0;
busStop position;
double time=10.0;



public Bus(){
this.capacity=50;
this.bus_id=bus_id;
}


public void spawn_bus(int bus_total,int position){
for(int i=1; i<=bus_total; i++){
bus_id=i;
System.out.println("Bus with ID:"+i+" created");
// setBusPosition(i,Bus_simulation.getPoissonRandom(position));
busMovement(i,Bus_simulation.getPoissonRandom(position));
}
}
public void setBusPosition(int bus_id, int stop_id){
System.out.println("Bus : "+bus_id+ " at Stop :"+stop_id);
}
public void busMovement(int bus_id, int stop_id){
double t=0.0;
while(bus_id>0 && t<=time){
t++;
stop_id ++;
if(stop_id>15){
int stop_id_m= (stop_id % 15);
System.out.println("Bus :" +bus_id + " now at "+stop_id_m +" at Time "+ t);
}else{
System.out.println("Bus :" +bus_id + " now at "+stop_id +" at Time "+ t);
}
}
}
}

主类

public class Bus_simulation {


public static void main(String[] args) {
int bus_number=5;
int total_bus_stops=15;
// bus obects
Bus bus = new Bus();
// bus stop onnjects
busStop stops = new busStop();
getPoissonRandom(5);
stops.create_busStop(total_bus_stops);
bus.spawn_bus(bus_number,5);


}

public static int getPoissonRandom(double mean){
Random r = new Random();
double L = Math.exp(-mean);
int k = 0;
double p = 1.0;
do {
p = p * r.nextDouble();
k++;
} while (p > L);
return k - 1;
}

// Generate Bus }

最佳答案

我不想写整个程序,而是想指出与您的问题相关的最大问题是什么。

您实际上只是创建了一个总线

Bus bus = new Bus();

然后您只需更改公交车号码,然后再次移动它即可。您可能想要创建一个

List<Bus> buses = new ArrayList<>(); 

相反。然后将 5 辆公交车放入列表中并与它们循环交互。

buses.add(new Bus());
buses.add(new Bus());
...
buses.forEach(bus -> ...) // this is for Java8+

spawn_bus 方法没有执行方法名称所暗示的操作。

老派的java可能是......

for (Bus bus : buses) {
...
}

如果您想利用 Java 流与它们并行(线程)交互......

buses.parallelStream().forEach(bus -> ...) 

关于java - 使对象同时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58253263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com