如果一次性输出取用,可以使用迭代器进行我们的集合遍历,但是这样的遍历有一个缺点,无法随意终止,即无法实现梭哈游戏中的发牌操作,因为在这种的操作中,list中的元素的分为几次被输出。而用我们的iterator遍历则会判断iterator.hasNext()存在就会一直遍历下去。直到list的iterator.hasNext()=0,停止。所以在这我们可以考虑使用我们的Collection中提供的方法,即利用我们的list中提供的类方法,即每次发牌的时候使用list.get(0)方法。即每次将我们的list集合之中的第一个元素输出,然后我们再利用list.remove(0);方法来删除我们的第一个元素,虽然这样做会使我们的list内容改变,但是不影响list在我们梭哈游戏中的使用,因为一副牌是不可以复用的,而且因为人数少于五人,每个人的牌也只有五张,所以不用担心list集合到最后出现重复。
但是在这里有一点非常重要,因为我们调用我们的list.remove()方法的时候,会修改我们的list的大小,即list.size()会被修改,所以在我们的循环体中的判断语句中的list.size()也会发生改变,所以梭哈在程序中设定只能有五个人,因为当五个人都到第五轮时候,发出去了25张牌,我们的list的长度也变成了27,最多可以再发一张牌,为什么是一张牌呢,因为当我们第26次发牌的时候,再次调用我们的remove方法,list的大小变成了26,我们的判断语句变成了 for(int i=26;i<list.size();i++)在这里我们的size获得的便是26.所以这是这个游戏之中较为不足的地方.测试代码如下
网友评论