介绍
在业务中我们经常要比较两个Map重复的部分,一般是根据key进行比较,即比较两个Map中有相同key的部分并保存起来,下面来看一个例子吧
代码
在mapOne中有0-9的key,在mapTwo中有3-14的key,将相同的3-9的key找出保存起来
package com.example.java.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
/**
* @description: Map Compare
* @author: zj
* @date: 2022-07-20 10:03
*/
public class MapCompareTest {
/**
* 比较两个map中相同的key
*
* @param args
*/
public static void main(String[] args) {
//初始化两个map
//[0-10)
Map<Integer, Object> mapOne = new HashMap<>();
for (int i = 0; i < 10; i++) {
mapOne.put(i, i);
}
//[0-15)
HashMap<Integer, Object> mapTwo = new HashMap<>();
for (int i = 0; i < 15; i++) {
mapTwo.put(i, i);
}
//比较两个Map将相同的key保存到keyList中
ArrayList<Object> keyList = new ArrayList<>();
for (Map.Entry<Integer, Object> obj : mapTwo.entrySet()) {
if (mapOne.containsKey(obj.getKey())) {
keyList.add(obj.getKey());
}
}
//打印
keyList.forEach( p -> {
System.out.print(p + " ");
});
}
}
效果
过滤出两个map中共同的key