您的位置:首页 > 其它

数牛面向对象解析

2014-09-03 21:58 190 查看
package zhu;

import java.util.concurrent.CopyOnWriteArrayList;

public class Test1 {

/**

* 农家一头小母牛

* 每年生头小母牛

* 母牛五岁产母牛

* 二十年上多少牛

*/

public static void main(String[] args) {

LargeCows lacows= new LargeCows(0);

LitteCows licows = new LitteCows(1);

licows.addCow(new LitteCow(0));

for(int i=1;i<21;i++)

{

//先将每个小牛的time加1,再看是否满5

CopyOnWriteArrayList<LitteCow> liCows2 = new CopyOnWriteArrayList<LitteCow>();

for(int z=0;z<licows.getLiCows().size();z++)

{

LitteCow lcow = licows.getLiCows().get(z);

lcow.setTime(lcow.getTime()+1);

//小牛 time满5则先大牛类的num加一 再 移除小牛集合对应小牛

if (lcow.getTime()>4)

{

lacows.setNum(lacows.getNum()+1);

// licows.getLiCows().remove();//最好不要在遍历集合时删除集合里的元素,因为可能遍历不到那个元素

liCows2.add(lcow);

}

}

//删除

licows.getLiCows().removeAll(liCows2);

//通过大牛类 计算出生小牛数目 再放入小牛集合类

int j=lacows.getNum();

while(j>0)

{

licows.addCow(new LitteCow(0));

--j;

}

int Count2=lacows.getNum()+licows.getLiCows().size();

System.out.println(i+"年后牛总数:"+Count2+"小牛:"+licows.getLiCows().size()+",大牛"+lacows.getNum());

}

}

}

class LitteCows{

private int num;

public int getNum() {

return num;

}

public void setNum(int num) {

this.num = num;

}

private CopyOnWriteArrayList<LitteCow> liCows = new CopyOnWriteArrayList<LitteCow>();

public CopyOnWriteArrayList<LitteCow> getLiCows() {

return liCows;

}

public void setLiCows(CopyOnWriteArrayList<LitteCow> liCows) {

this.liCows = liCows;

}

public void addCow(LitteCow lcow)

{

liCows.add(lcow);

}

public void delCow(LitteCow lcow)

{

liCows.remove(lcow);

}

public LitteCows(int num) {

this.num = num;

}

}

class LitteCow{

private int time;

public LitteCow(int time) {

this.time = time;

}

public int getTime() {

return time;

}

public void setTime(int time) {

this.time = time;

}

}

class LargeCows{

private int num;

public LargeCows(int num) {

super();

this.num = num;

}

public int getNum() {

return num;

}

public void setNum(int num) {

this.num = num;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: