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就会出现,当比较小时则不会出现,各位给说说这是什么错误,怎么纠正,我刚学没多久请各位指点一二

解决方案 »

  1.   

    ArrayList al=new ArrayList();
    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);
    }
                   **/
    }
      

  2.   

    超出了 int 的范围了吧
      

  3.   


    if (Integer.parseInt(arr.get(0).toString()) == Integer.parseInt(b.get(j).toString()))
    if(arr.get(0)==b.get(j)) 
                System.out.println(j); 
      

  4.   

    上面写错了,呵呵,这么改if (Integer.parseInt(arr.get(0).toString()) == Integer.parseInt(b.get(j).toString()))
        System.out.println(j); 
      

  5.   

    arr.get(0)当这个东西大于127时,你就比较不出来结果了
    具体可以参看这个代码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); 

    }
      

  6.   

    j=b.indexOf(arr.get(0));
    if (j!=-1)
    System.out.println(j);
    这样应该可以了