| 本帖最后由 周兴中 于 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);
 
 |