2つのハッシュマップをキーで並べ替え、それらの値を比較して同じ値を持たないすべてのキーを出力したいと思います。これを行う方法を教えてください。以下は私のコードです。私はJavaに慣れておらず、データ構造を一つ一つ学習しています。助けてくれてありがとう。キーで2つのハッシュマップを比較し、同じ周波数を持たないキーを返す
コード: -
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());
}
}
ソートとは何が関係していますか? – shmosel
Guavaの 'Maps.difference()'は、あなたが望むことをする必要があります。 – shmosel