import java.util.ArrayList;
public class Game{
public static void main(String args[])
{
ArrayList arr=new ArrayList();
ArrayList b=new ArrayList();
int i=0;
for(int k=0;k<50;k++)
{
arr.add(k);
b.add(k);
}
while(arr.size()!=1)
{
for(int m=0;m<arr.size();m++)
{
i++;
if(i==3)
{
arr.remove(m);
arr.trimToSize();
m=m-1;
i=0;
}
continue;
}
}
int j;
for( j=0;j<b.size();j++)
if(arr.get(0)==b.get(j))
System.out.println(j);
}
}当数比较大时就会出现这个问题,比如说500就会出现,当比较小时则不会出现,各位给说说这是什么错误,怎么纠正,我刚学没多久请各位指点一二
public void g(){
al.add(1);
al.add(3);
Iterator iter=al.iterator();
while(iter.hasNext()){
Object o=iter.next();
System.out.println(o);
}
/**for(Object sl:al){
System.out.println(sl);
}
**/
}
if (Integer.parseInt(arr.get(0).toString()) == Integer.parseInt(b.get(j).toString()))
if(arr.get(0)==b.get(j))
System.out.println(j);
System.out.println(j);
具体可以参看这个代码public static Integer valueOf(int i) {
final int offset = 128;
if (i >= -128 && i <= 127) { // must cache
return IntegerCache.cache[i + offset];
}
return new Integer(i);
}
...
private static class IntegerCache {
private IntegerCache(){}
static final Integer cache[] = new Integer[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Integer(i - 128);
}
}
if (j!=-1)
System.out.println(j);
这样应该可以了