本帖最后由 longer262110 于 2012-08-22 09:08:57 编辑

解决方案 »

  1.   

    LZ  DeBug一下吧,看看在list.size()>0时 System.out.println("大小");有输出结果么。我猜可能的原因你去尝试一下吧1 循环是否结束, 2 是否出现异常。 希望对你有所帮助
      

  2.   

    list.size()>0的时候的log信息发一下吧
      

  3.   

    list.size()是得到数组元素的总数,如果数组不为空,就把所有元素删掉,假如mymap,否则,直接加入mymap.
      

  4.   

    我写那么多System.out.println就想想测试一下的,但是都没有打印
      

  5.   


    这是打印结果:ip:10.98.101.33
    shijian:1345599903298
    size:0
    hello
    ip:10.98.101.33
    shijian:1345599908202
    size:1
    time:1345599903298
    时间间隔:0.08m
    times:1
    您一分钟内访问没有超过2次
      

  6.   

    不是java的语法问题,是你代码写的有问题。
    当list.size>0时,楼主的代码: 
    list.remove(i);---------------list.add(mymap);这句有问题,List每remove掉一个元素以后,后面的元素都会向前移动,此时如果执行i=i+1,则刚刚移过来的元素没有被读取。而且在循环中执行代码:
       if (list.get(i).get("ip").equals(ip)) {}
                 else {
                        mymap.put("ip", ip);
                        mymap.put("time", shijian);
                        mymap.put("times", 1);
                        list.add(mymap);//注意这句,可能造成一直循环
                    }
       可能造成无限循环,这也就是楼主说的“如果list.size()>0则执行到最里层那个if-else的时候就完了呢,不执行iPXianZhi()后面的语句了,不打印hello”的原因了
      

  7.   

    问题得到解决,不过不是7楼朋友说的那样,也请这位朋友好好想想,加强学习。首先谢谢各位热心的解答。是这个地方有问题mymap.put("times", ((Integer)(list.get(i).get("times")))+1);,应该怎么处理这样的问题,请各位好好想想,互相学习。
      

  8.   

    ip:10.98.101.33
    shijian:1345601541130
    size:0
    hello
    ip:10.98.101.33
    shijian:1345601545741
    size:1
    time:1345601541130
    时间间隔:0.08m
    times:1
    cishu:2
    您一分钟内访问没有超过2次
    访问次数
    时间间隔
    大小
    hello
    ip:10.98.101.33
    shijian:1345601554049
    size:1
    time:1345601541130
    时间间隔:0.22m
    times:2
    您一分钟内访问超过了2次
    访问次数
    时间间隔
    大小
    hello
    ip:10.98.101.33
    shijian:1345601559550
    size:1
    time:1345601541130
    时间间隔:0.31m
    times:2
    您一分钟内访问超过了2次
    访问次数
    时间间隔
    大小
    hello
      

  9.   

    楼主发生越界异常了么还是其它异常了呀! try catch很重要。
      

  10.   


                                list.remove(i);
                                mymap.put("ip", ip);
                                mymap.put("time", time);
                                mymap.put("times", ((Integer)(list.get(i).get("times")))+1);
                                list.add(mymap);
                                System.out.println("您一分钟内访问没有超过2次");
    这个地方先是remove了,然后再去get,这里有问题。