将卡片的前半部分移入firstHalf
//这可能会或可能不会在一行代码中完成
将卡片中的剩余元素移至secondHalf
//这可能会或可能不会在一行代码中完成
虽然firstHalf中有元素
在firstHalf的开头删除元素,然后将其添加到卡片中
在secondHalf的开头删除元素并将其添加到卡片中
末了
如果secondHalf剩余任何元素
在secondHalf的开头删除元素并将其添加到卡片中
万一
这是我得到的错误。如果我要删除,为什么列表会增加?我应该在第一个for循环中做这样的事情吗?
firstHalf.add(cards.remove(0));
cards = firstHalf.add(cards.remove(0));
这是我得到的错误
shuffle()不应更改卡中元素的数量。卡片包含完整的52张卡片组,但现在具有大小:71预期:但原为:
public void shuffle(ListGenerator gen) {
List<PlayingCard> firstHalf = gen.createNewList();
List<PlayingCard> secondHalf = gen.createNewList();
for (int i = 0; i <= (cards.size() / 2); i++) {
firstHalf.add(cards.remove(0));
}
secondHalf.addAll(cards);
while (firstHalf.isEmpty() == false) {
cards.add(firstHalf.remove(0));
cards.add(secondHalf.remove(0));
}
if (secondHalf.isEmpty() == false) {
cards.add(secondHalf.remove(0));
}
}*
最佳答案
您需要清除cards
,因为卡片仍然具有以前添加到secondHalf
的元素
secondHalf.addAll(cards);
cards.clear();
//^^^^^^^^^^^^