2つのグループは同じ要素を探します-array


2つのグループは同じ要素を探します-array
時間制限:C/C++言語1000 MS;その他言語3000 MS
メモリ制限:C/C++言語65536 KB;その他の言語589824 KB
タイトルの説明:
2つの整数(int)配列に同じ要素を出力します.
入力
2つの整数配列[a 1,a 2,...,am],[b 1,b 2,...,bn]を与えた.
入力フォーマットは以下の通りであり、第1行は第1配列のサイズmを与え、次のmはその配列要素a 1--amを動作させ、各行に1つの要素を与える.第m+1行は第2の配列の大きさnであり、次のn行はその配列要素b 1−bnであり、行ごとに1つの要素でもある.例は次のとおりです.
m
a1
a2

am
n
b1
b2

bn

しゅつりょく
2つの配列の同じ要素は、1行にスペースで区切られて表示され、2番目の配列に現れる順序が表示されます.
サンプル入力
5
11
15
9
12
3
4
11
3
9
7
サンプル出力
11 3 9
package com.main;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
//         -array
// ArrayList  
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int m = sc.nextInt();
		List listM = new ArrayList();
		while ((m--) != 0) {
			long element = sc.nextLong();
			listM.add(element);
		}

		List resList = new ArrayList();

		int n = sc.nextInt();
		while ((n--) != 0) {
			long element = sc.nextLong();
			if (listM.contains(element)) {//      
				resList.add(element);
			}
		}

		for (int i = 0; i < resList.size(); i++) {
			System.out.print(resList.get(i)+" ");
		}
	}//main
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
//         -array
// HashMap  
public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int m = sc.nextInt();
		Map mapM = new HashMap();
		while ((m--) != 0) {
			mapM.put(sc.nextLong(), "");
		}

		int n = sc.nextInt();
		List resList = new ArrayList();
		while ((n--) != 0) {
			long element = sc.nextLong();
			if (mapM.containsKey(element)) {
				resList.add(element);
			}
		}
		for (int i = 0; i < resList.size(); i++) {
			System.out.print(resList.get(i) + " ");
		}
	}
}