下面代码为什么打印出来的都是集合的最后一个元素,例如cars有14个元素,循环会打印14次cars中最后一个元素,以致于保存都是14个同一个对象,现在我是想要打印出i个不同的元素,并保存i个对象.
  
        List<Cars> cars = new ArrayList<Cars>();
     Cars poCars = new Cars();
        for(int i=0; i<getAirLineNo().length; i++){
         poCars.setFlightnumber(getCarNo()[i]);
         poCars.setPlanetype(getCarType()[i]);
         cars.add(poCars);          
        }         
        for(int i=0;i<cars.size();i++){
          Cars car = (Cars)cars.get(i);
          System.out.println(car.getCarnumber());
        System.out.println(car.getCartype());
          CarService.save(car);
       }

解决方案 »

  1.   

    贴错了点东西,刚才代码应该是
    List <Cars> cars = new ArrayList <Cars>(); 
        Cars poCars = new Cars(); 
            for(int i=0; i <getCarNo().length; i++){ 
            poCars.setCarnumber(getCarNo()[i]); 
            poCars.setCartype(getCarType()[i]); 
            cars.add(poCars);        
            }        
            for(int i=0;i <cars.size();i++){ 
              Cars car = (Cars)cars.get(i); 
              System.out.println(car.getCarnumber()); 
          System.out.println(car.getCartype()); 
              CarService.save(car); 
          } 
      

  2.   

    ]
    List <Cars> cars = new ArrayList <Cars>(); 
         
            for(int i=0; i <getCarNo().length; i++){ 
    Cars poCars = new Cars();
            poCars.setCarnumber(getCarNo()[i]); 
            poCars.setCartype(getCarType()[i]); 
            cars.add(poCars);        
            }        
            for(int i=0;i <cars.size();i++){ 
              Cars car = (Cars)cars.get(i); 
              System.out.println(car.getCarnumber()); 
          System.out.println(car.getCartype()); 
              CarService.save(car); 
          } 
      

  3.   

    把Cars poCars = new Cars()放到 for(int i=0; i <getAirLineNo().length; i++){ }里面。
      

  4.   

    Cars poCars = new Cars();写到循环里在去。很简单, 因为循环里面都是在对一个引用的对象进行操作。
      

  5.   

    Cars poCars = new Cars(); 放在里面第一个for循环里
    list只放了1个Cars