java map 子集_Java中判断map中是否包含另一个map

判断map中是否包含另一个map

map不同于list, list有直接判断集合是否包含其他集合的方法。

list判断是否包含元素或集合的方法

如果列表包含指定的元素,则返回 true。

boolean contains(Object o)

如果列表包含指定 collection 的所有元素,则返回 true。

boolean containsAll(Collection> c)

map判断的方法

map 虽然没有直接判断是否包含其它map的方法,但是map有判断key是否存在于map中的方法,有判断value是否存在于map中的方法

如果此映射包含对于指定键的映射关系,则返回 true。

containsKey(Object key)

如果此映射将一个或多个键映射到指定值,则返回 true。

containsValue(Object value)

思路:

由于只能比较key和value,而要比较map是否存在就需要同时去比较key和value,那么将key与value 改造成特定格式的字符串,作为key或者value,再去进行比较key或者value,就可以达到想要的效果了。

示例如下:

public static void main(String[] args) {

Map map1 = new HashMap<>();

Map map2 = new HashMap<>();

Map mapA = new HashMap<>();

map1.put("a", "b");

map1.put("b", "d");

map1.put("a", "c");

map1.put("e", "r");

map2.put("a", "b");

map2.put("a", "c");

// 遍历map1

for (Map.Entry entry : map1.entrySet()) {

// 获取key

String map1Key = entry.getKey();

// 获取value

String map1Value = entry.getValue();

// 将 key:value 当作一个 key, 可以用来比较

String map1KeyVal = map1Key + ":" + map1Value;

// 将 value:key 当作一个 value, 可以用来比较, 二者选一个比较即可

String map1ValKey = map1Value + ":" + map1Key;

mapA.put(map1KeyVal, map1ValKey);

}

// 判断map1是否包含map2

for (Map.Entry entry : map2.entrySet()) {

String map2Key = entry.getKey();

String map2Value = entry.getValue();

String map2KeyVal = map2Key + ":" + map2Value;

boolean keyExist = mapA.containsKey(map2KeyVal);

boolean valExist = mapA.containsValue(map2KeyVal);

if (keyExist == false){

System.out.println("map1 不包含 map2");

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值