JAvaはmapを使って繰り返します

1480 ワード

今日京东に行って面接して、自分の技术の方面がやはり不足していると感じて、1つはこの2年の仕事の大部分がすべて仕事を维持するためで、BUGとデータと付き合うのが比较的に多くて、2つは自分があまりにも怠惰なためで、多くの人の考えと同じように、いつも仕事と勉強を統一したいと思っていますが、本当にそうするのは少ないかもしれません.涙と言って、次は今日の筆記試験の問題を貼って、難しくなくて、いいところがあると思います(主に当時書いていなかったので、帰ってきてまた書いてみました).
タイトルは、id、valueの2つのフィールドを持つ2つのグループのデータがあり、javaの1つのコンテナを選択してそれぞれそのデータを取得し(データ取得プロセスを無視)、その完全な重複部分をコンテナ2から削除します.
最初のアイデアはmapを使って、具体的な実現方法を忘れて、帰ってから書くのは難しくありませんでした.
table1
1
a
2
b
3
c
4
d
5
e
table2
1
g
2
f
3
c
4
t
5
e
 
public class Test {
	public static void main(String[] args) {
		Map map1 = new HashMap();
		Map map2 = new HashMap();
		
		map1.put(1, "a");
		map1.put(2, "b");
		map1.put(3, "c");
		map1.put(4, "d");
		map1.put(5, "e");
		
		map2.put(1, "g");
		map2.put(2, "f");
		map2.put(3, "c");
		map2.put(4, "t");
		map2.put(5, "e");
		
		boolean isEquals = false;
		
		for(Object o : map1.keySet()){
			isEquals = map2.containsKey(o);
			if(isEquals){
				isEquals = map1.get(o).equals(map2.get(o));
			}
			if(isEquals){
				map2.remove(o);
			}
		}
		for(Object o : map2.keySet()){
			System.out.println(o.toString() + ":" + map2.get(o));
		}
	}
}

これで大丈夫だと思いますが、もっと良い方法があれば議論を歓迎しましょう.