来,楼上的都不好好给你解释,让叔叔帮你

你这个程序想不明白自然就不会改,我也只能用举例例子的方式给你将,remove方法不能单纯的理解为删除,它的移走、移除的意思,就好比你脚下垫了2块砖刚好够高能偷看女厕所,则你脚下是砖一、砖二、你再踩它们上面,估计称你为砖三。可你想想,如果我把你脚下的两块砖抽走了,你是不是就掉下来了。是不是就相当于你成砖一了!!!所以你写的程序,就好比你已经知道开始的时候砖的长度len=3块。然后你先抽走第一块,可以完成!。然后原来的砖二掉下来成砖一,砖三成砖二。紧接着你的程序提示该抽第二块了。可以完成,但你以为你的程序抽的是砖二,其实抽走的是掉下来的砖三。现在就只剩一块砖了,并且叫砖一,可你的程序却提示该抽砖三了。可现在只有一块砖了,没有砖三。提示越界