编写程序将HashMap(变量a)中key和value互换•放入到新的HashMap (变量b)中.
如果value作为key值出现复情况,留在原HashMap (变最a)中,最后打印出变量a和b集合的数量,
存放有数据的原HashMap
HashMap<String,String> a = new HashMap<String,String>;
互换后的HashMap
HashMap<String,String> b = new HashMap<String,Slring>;
编写互换逻辑:
HashMap<String, String> a = new HashMap<String, String>();
HashMap<String, String> b = new HashMap<String, String>();
a.put("aaa", "111");
a.put("bbb", "222");
a.put("ccc", "333");
a.put("ddd", "333");
int index = 0;
int size = a.size();
String[] key = new String[size];
String[] val = new String[size];
for (String str : a.keySet()) {//keySet 取出hashMap中的所有key
val[index] = str;
key[index] = a.get(str);
index++;
}
for (int i = 0; i < size; i++) {
String s = b.get(key[i]);
if (s != null) {
continue;
}
b.put(key[i], val[i]);
a.remove(val[i]);
}
System.out.println("map a:"+a.size());
System.out.println("map b:"+b.size());
输出结果:
不足之处请指出
转发引用请注明原文地址