java - 使用列表的删除和添加方法
问题描述
将卡片的前半部分移动到 firstHalf // 这可能会或可能不会在一行代码中完成 将卡片中的剩余元素移动到 secondHalf // 这可能会或可能不会在一行代码中完成 虽然 firstHalf 中有元素移除 firstHalf 开头的元素并添加到卡片 移除 secondHalf 开头的元素并将其添加到卡片 EndWhile 如果 secondHalf 有任何剩余元素 移除 secondHalf 开头的元素并将其添加到卡片 EndIf
这是我得到的错误。如果我要删除,为什么我的列表会增长?我应该在我的第一个 for 循环中做这样的事情吗? firstHalf.add(cards.remove(0));
卡片= firstHalf.add(cards.remove(0));
这是我得到的错误
shuffle() 不应该改变卡片中元素的数量。卡片包含完整的 52 张卡片组,但现在大小:71 预期:<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();
//^^^^^^^^^^^^
推荐阅读
- angular - Angular 材质:反应性与模板?
- jquery - 如何使用 jQuery 解析特定的 JSON 元素
- loops - 不要循环,迭代!(普通 Lisp)
- sql - 如何从sql server中的表中选择自定义数据和数据?
- javascript - 如果导入模块,“相对路径”的上下文似乎会更改为调用模块
- php - 在运行时构建多个 LIKE 运算符准备语句
- ruby-on-rails - 高级搜索框不显示结果或连接到显示视图
- python - 查找连续重复并列出它们在 python 中出现位置的索引
- typescript - 尝试使用 ServiceStack 将 DTO 导入打字稿时如何使用“DefaultImports”?
- laravel - 使用自定义路由进行 Laravel 身份验证