合并两个hashmap,重复的值只显示一项。
发布网友
发布时间:2022-05-01 05:57
我来回答
共5个回答
热心网友
时间:2022-06-25 07:09
如果重复添加的话,hashmap会自动覆盖key一样的数据,保证一个key对应一个value
也就是说,你只要把一个map2里的数据按照key一个一个都加到map1里去就行了,但是这样会破坏map1
如果是想保持原来的不变,可以先新建一个空的hashmap,把map1和map2的数据都加进去就可以了
HashMap map3 = new HashMap();
for (Object key : map1.keySet())
map3.put(key, map1.get(key));
for (Object key : map2.keySet())
map3.put(key, map2.get(key));
可以根据具体的类型加上泛型模板
热心网友
时间:2022-06-25 07:10
import java.util.HashMap;
import java.util.Iterator;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
//准备数据
HashMap map1 = new HashMap();
for(int i=1;i<5;i++){
map1.put(i, i);
}
HashMap map2 = new HashMap();
for(int i=3;i<7;i++){
map2.put(i, i);
}
//开始添加
HashMap map3 = new HashMap();
for(Iterator it = map1.keySet().iterator();it.hasNext();){
Object key = it.next();
if(map3.get(key) == null){
map3.put(key, map1.get(key));
}
}
for(Iterator it = map2.keySet().iterator();it.hasNext();){
Object key = it.next();
if(map3.get(key) == null){
map3.put(key, map2.get(key));
}
}
//测试输出
for(Iterator it = map3.keySet().iterator();it.hasNext();){
Object key = it.next();
System.out.println(key + ":" + map3.get(key));
}
}
}
输出结果为:
1:1
2:2
3:3
4:4
5:5
6:6
我可是帮你测试过的。。
热心网友
时间:2022-06-25 07:10
public static void main( String[] args )
{
Map<String,String> map1 = new HashMap<String,String>();
map1.put("1", "1");
map1.put("2", "2");
Map<String,String> map2 = new HashMap<String,String>();
map1.put("2", "2");
map1.put("3", "3");
Map<String,String> map3 = new HashMap<String,String>();
map1.put("3", "3");
map1.put("4", "4");
Map<String,String> newMap = new HashMap<String,String>();
newMap.putAll(map1);
newMap.putAll(map2);
newMap.putAll(map3);
System.out.println(newMap.size());
}
热心网友
时间:2022-06-25 07:11
没有关系,直接将数据放在一个map中就可以了,map中的键不允许重复,使用put方法添入
热心网友
时间:2022-06-25 07:11
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Cat {
public static void main(String[] args) {
Map map1 = new HashMap();
map1.put("1", "1");
map1.put("2", "2");
map1.put("3", "3");
map1.put("4", "4");
Map map2 = new HashMap();
map2.put("3", "3");
map2.put("4", "4");
map2.put("5", "5");
map2.put("6", "6");
Map map3 = new HashMap();
map3.putAll(map1);
map3.putAll(map2);
for (Iterator iter = map3.keySet().iterator(); iter.hasNext();) {
String key = (String) iter.next();
System.out.println(key + "<---> " + map3.get(key));
}
}
}
--------------------------
4<---> 4
5<---> 5
6<---> 6
1<---> 1
2<---> 2
3<---> 3