首页 > 解决方案 > 如何识别 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 循环吗?

标签: javaandroidfor-looplambda

解决方案


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;
                }
            }
        }

推荐阅读