'数组\for循环'问题

wesley85930 2007-12-13 02:13:02
我现在有个list,size是动态的
我想把这个list重新封装到一个'aera'对象中(area类有4个字段,p1,p2,p3,p4)
请问如何利用for循环做到
...全文
145 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
JhunHoonXZ 2007-12-13
  • 打赏
  • 举报
回复
通用的,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;
}
}
Maojm 2007-12-13
  • 打赏
  • 举报
回复
楼上的基本可以了。
补充一点就是,数据类型要一致,不一致的要转换过。
deepbreathing 2007-12-13
  • 打赏
  • 举报
回复

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

beiouwolf 2007-12-13
  • 打赏
  • 举报
回复
不考虑通用性
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的属性,循环填充
TerryLhw1983 2007-12-13
  • 打赏
  • 举报
回复
这个似乎有点怪,用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)));
}
wesley85930 2007-12-13
  • 打赏
  • 举报
回复
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
.
.
这样,如何解决


JhunHoonXZ 2007-12-13
  • 打赏
  • 举报
回复
不懂..
你list里装的是什么?
想怎么封到area里?
wesley85930 2007-12-13
  • 打赏
  • 举报
回复
那如何把一个一维数组转换成二维数组
wesley85930 2007-12-13
  • 打赏
  • 举报
回复
用什么方法都行,来人帮帮我啊

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧