import java.util.*;
import java.lang.*;
import java.io.*;
 
class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		// n人分のデータを作り
		int n = 100000;
		Random rand = new Random();
		String[][] customer = new String[n][2];
		for (int i = 0; i < n; i++)
			customer[i][0] = String.valueOf((char) (rand.nextInt(26)+'a')) + i + "@ab.com";
		for (int i = 0; i < n; i++)
			customer[i][1] = i + "さん";
 
		// メールアドレスでソートします
		Arrays.sort(customer, (c1, c2) -> c1[0].compareTo(c2[0]));
 
		// キーをメールアドレス、値を名前としたハッシュマップも作ります
		Map<String, String> hashmap = new HashMap<>(n);
		for (String[] c : customer)
			hashmap.put(c[0], c[1]);
 
		// 同じcustomer(101番目)の名前が取れる
		System.out.println(customer[101][0] + "の名前は" + customer[101][1]);
		// ハッシュマップからメールアドレスで取ることもできる
		System.out.println(customer[101][0] + "の名前は" + hashmap.get(customer[101][0]));
		System.out.println("確認終わり");
 
		// では、m人分のメールアドレスを適当に選んで
		int m = 1000;
		String[] keys = new String[m];
		for (int j = 0; j < m; j++)
			keys[j] = customer[rand.nextInt(n)][0];
 
		// １人ずつ
		for (int j = 0; j < m; j++){
			String key = keys[j];
			// 検索してみましょう
 
			// TODOだった場所
			String found = null;
			for (int i = 0; i < n; i++) {
				if (Objects.equals(key, customer[i][0])) {
					found = customer[i][1];
				}
			}
 
			if (j % 100 == 0) {
				System.out.println(key + "の名前は" + Objects.toString(found, "不明"));
			}
		}
	}
}