【发布时间】:2017-11-15 21:15:47
【问题描述】:
我想按键对两个 HashMap 进行排序并比较它们的值并打印出所有不具有相同值的键。你能帮我怎么做吗?这是我的代码如下。我是 Java 新手,一一学习数据结构。感谢您的帮助。
代码:-
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int val;
int n = scan.nextInt();
HashMap<Integer,Integer> h1 = new HashMap<Integer,Integer>();
for( int i=0;i<n;i++ ) {
val = scan.nextInt();
if(!h1.containsKey(val)) {
h1.put(val,1);
}
else {
h1.put(val,h1.get(val)+1);
}
}
int m = scan.nextInt();
HashMap<Integer,Integer> h2 = new HashMap<Integer,Integer>();
for( int i=0;i<m;i++ ) {
val = scan.nextInt();
if(!h2.containsKey(val)) {
h2.put(val,1);
}
else {
h2.put(val,h2.get(val)+1);
}
}
System.out.println(h1.keySet());
System.out.println(h1.values());
System.out.println(h2.keySet());
System.out.println(h2.values());
}
}
【问题讨论】:
-
排序与它有什么关系?
-
Guava 的
Maps.difference()应该做你想做的事。
标签: java data-structures hashmap