package com.sun;import java.util.ArrayList;public class Number extends Monkey{
public static void main(String[] args) {
Number n = new Number();
n.count();
}
}
class Monkey{
private int id ;
private int num ;
private int i ;
public void count()
{
ArrayList al = new ArrayList();
for (int i = 0; i < 3; i++) {
Monkey mon = new Monkey();
mon.id = i;
mon.num = 1;
al.add(mon);
}
while (al.size() != 1) {
i++;
num++;
if (((Monkey)al.get(i)).num % 3 == 0) {
al.remove(i);
}
if (i > al.size()) {
i = 0;
}
}
System.out.println(((Monkey)al.get(0)).num);
}
}
public static void main(String[] args) {
Number n = new Number();
n.count();
}
}
class Monkey{
private int id ;
private int num ;
private int i ;
public void count()
{
ArrayList al = new ArrayList();
for (int i = 0; i < 3; i++) {
Monkey mon = new Monkey();
mon.id = i;
mon.num = 1;
al.add(mon);
}
while (al.size() != 1) {
i++;
num++;
if (((Monkey)al.get(i)).num % 3 == 0) {
al.remove(i);
}
if (i > al.size()) {
i = 0;
}
}
System.out.println(((Monkey)al.get(0)).num);
}
}
i=3 的时候 al.get(3) 3里面没东西你当然拿不到了
i = 0;
}
如果大于数组长度 则设i为0
没执行?
问题是你把这个判断放在最后了啊,i++到了3,然后get(3),最后才到那个判断,这是一步一步走下来的