本帖最后由 周兴中 于 2012-6-25 18:55 编辑
ScheduledExecutorService timer = Executors.newScheduledThreadPool(1);
timer.scheduleAtFixedRate(
new Runnable(){
public void run(){
if(vechicles.size()>0){
boolean lighted = Lamp.valueOf(Road.this.name).isLighted();
if(lighted){
System.out.println(vechicles.remove(0) + " is traversing !");//因为车辆集合由List创建的,根据List的特性,remove(0)表示的就是移除列表中的第一个元素,然后后面的元素向左移动(并且索引减 1),这样每次都移除的就是排队排在前面的车子,你可以想象,交通灯前的车子,肯定是按照顺序,离路口近的车先行驶过路口,然后后面的车子跟上,符合道道路现状. remove(0)表达的就是这个意思 }
}
}
},
1,
1,
TimeUnit.SECONDS);
|