一、培养细菌
1、(面向对象和集合思想)一个细菌长大需要20分钟,分裂出下一代需要30分钟,150分钟该细菌死亡,输入时间,观察细菌数量;
思路:定义获得细菌方法,传入时间
public static void main(String[] args) {System.out.println(getBacteria(300));}public static int getBacteria(int minute){int count = 1;Map<Integer,Integer> map = new ConcurrentHashMap<Integer,Integer>();//map第一个参数存的是细菌编号,第二个参数存的是存活时间map.put(count++, 10);for(int i = 10; i <= minute; i=i+10 ){System.out.println(map + "时间开始:" + i);//迭代器循环Set<Entry<Integer, Integer>> set = map.entrySet();Iterator<Entry<Integer, Integer>> it = set.iterator();while(it.hasNext()){Entry<Integer, Integer> entry = it.next();//取出key,valueInteger key = entry.getKey();Integer value = entry.getValue();//50进行第一次繁殖,80进行第二次繁殖,110进行第三次繁殖if (value == 50 || value == 80 || value == 110) {//到出生节点,每个细胞分裂成两个map.put(count++, 10);map.put(count++, 10);}//150死亡if(value == 150){map.remove(key);} else {value+=10;map.put(key, value);}}System.out.println(map.keySet() + "时间结束:" + i);}return map.size();}
