我现在有个list,size是动态的
我想把这个list重新封装到一个'aera'对象中(area类有4个字段,p1,p2,p3,p4)
请问如何利用for循环做到

解决方案 »

  1.   

    不懂..
    你list里装的是什么?
    想怎么封到area里?
      

  2.   

    list就是个数组
    例如list是个长度为23的数组
    area是个类,有p1,p2,p3,p4四个属性
    我想把list[0]放到p1,list[1]放到p2,list[2]放到p3,list[3]放到p4
         list[4]放到p1,list[5]放到p2,list[6]放到p3,list[7]放到p4
             .
             .
    这样,如何解决
      

  3.   

    这个似乎有点怪,用for吗?不知道一下代码是否满足你的需求。
    Area [] area = new Area[list.size()/4];//理论上你的list数目必须是4的倍数,因为Area有4个属性嘛
    for (int i = 0; i < area.length; i++) {
        area[i].setP1(String.valueOf(list.get(i * 4)));
        area[i].setP2(String.valueOf(list.get(i * 4 + 1)));
        area[i].setP3(String.valueOf(list.get(i * 4 + 2)));
        area[i].setP4(String.valueOf(list.get(i * 4 + 3)));
    }
      

  4.   

    不考虑通用性
    for(int i = 0; i < list.size(); i ++){
     int index = i % 4;
     switch(index){
      case 0:
       area.p1 = list.get(i);
      case 1:
       area.p2 = list.get(i);
      case 2:
       area.p3 = list.get(i);
      case 3:
       area.p4 = list.get(i);
     }
    }考虑通用性的,用反射来遍历arer的属性,循环填充
      

  5.   


    之前为什么list中不直接放area 啊!
    这样的话你就只有循环这个数组了,每次取4个值.......然后继续
      

  6.   

    通用的,list.length是几都行另外数组请用lenght
    又是list的又是size的..还以为是List..
    int s=list.length/4;
    if(list.length%4!=0)
    s++;
    Area[] area=new Area[s];
    for(int i=0;;i+=4){
    area[i/4]=new Area();
    try{
    area[i/4].p1=list[i];
    area[i/4].p2=list[i+1];
    area[i/4].p3=list[i+2];
    area[i/4].p4=list[i+3];
    }catch(Exception e){
    break;
    }
    }