java - 如何识别 2 个 HashMap 是否包含具有相同 ID 的对象
问题描述
目前我正在制作一个纸牌游戏,其中玩家的库存中有一张纸牌列表。我现在的目标是用这些卡片创建一个甲板,其中甲板内的卡片没有显示在库存方面,为此我尝试了以下代码:
for (HashMap<String, String> cartaInventario : listaCartasInventario) {
for (HashMap<String, String> cartaDeckInventario : listaCartasDeckInventario) {
if(cartaInventario.get(Config.TAG_ID_CARTA_INVENTARIO) != cartaDeckInventario.get(Config.TAG_ID_CARTA_DECKINVENTARIO))
{
cartasInventario.add(cartaInventario.get(Config.TAG_ID_CARTA_INVENTARIO));
}
}
}
这段代码仍然不起作用,我的问题是,进行此验证的最有效方法是什么,我应该使用 lambda 表达式而不是 for 循环吗?
解决方案
for (HashMap<String, String> cartaInventario : listaCartasInventario) {
cartasInventario.add(cartaInventario.get(Config.TAG_ID_CARTA_INVENTARIO));
for (HashMap<String, String> cartaDeckInventario : listaCartasDeckInventario) {
if(cartaInventario.get(Config.TAG_ID_CARTA_INVENTARIO).equals(cartaDeckInventario.get(Config.TAG_ID_CARTA_DECKINVENTARIO)))
{
cartasInventario.remove(cartaInventario.get(Config.TAG_ID_CARTA_INVENTARIO));
break;
}
}
}
推荐阅读
- xml - 将 xml 模式命名空间链接到实例 xml 实例
- node.js - 如何在 bitnami ruby 堆栈中配置子域
- unit-testing - WSO2 ESB 单元测试套件 - 来自注册表的工件问题
- hyperledger-fabric - 链码实例化错误:配置的日志记录驱动程序不支持读取
- linux - 如何解释 /proc/self/mountstats 中时间列的这种值 - 它是否表明存在性能问题?
- azure - Gitlab CI/CD 部署到 Azure Web 服务
- elasticsearch - Elasticsearh 作为 BI 平台
- go - Go 切片变异最佳实践
- c - 每次操作后队列重置
- python - 打印超过 1GB 的文件