我这个真的是全手工定制map啊,过了50%,数组越界还是超时给忘记了,太难了

package 笔试.搜狗;

import java.util.*;

class map {

	public ArrayList<HashMap<String, Integer>> list = new ArrayList<>();
	public ArrayList<HashMap<String, Integer>> taotaiList = new ArrayList<>();

	int size;

	public map(int n) {
		size = n;
	}

	public void insert(String key, Integer value) {
		if (isHave(key) != null) {
			//存在
			HashMap<String, Integer> have = isHave(key);
			if (have.get(key) < value) {
				//需要更新,删除以前,插入新的
				//删除
				deleteMap(key);
				have.put(key, value);
				list.add(have);
			}
		} else {
			//不存在
			HashMap<String, Integer> newMap = new HashMap<>();
			newMap.put(key, value);
			if (list.size() < size) {
				//list大小满足,直接保存
				list.add(newMap);
			} else {
				taotaiList.add(list.get(0));
				list.remove(0);
				insert(key, value);
			}

		}

	}

	/**
	 * 判断是否存在
	 * 存在返回这个map
	 * 不存在返回null
	 *
	 * @param key
	 * @return
	 */
	public HashMap<String, Integer> isHave(String key) {
		HashMap<String, Integer> oldMap = null;
		for (HashMap<String, Integer> map1 : list) {
			if (map1.containsKey(key)) {
				oldMap = map1;
			}
		}
		return oldMap;
	}

	/**
	 * 删除相同的key之前的数据
	 *
	 * @param key
	 */
	public void deleteMap(String key) {
		for (int i = 0; i < list.size(); i++) {
			if (list.get(i).containsKey(key)) {
				list.remove(list.get(i));
			}
		}
	}
}

public class T1 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		map map = new map(n);
		ArrayList<String> list = new ArrayList<>();
		String next = sc.nextLine();
		while (sc.hasNextLine()) {
			list.add(sc.nextLine());
		}
		for (String s1 : list) {
			map.insert(s1.split(" ")[0], Integer.parseInt(s1.split(" ")[1]));
		}
		for (int i = 0; i < map.taotaiList.size(); i++) {

			Set<String> set = map.taotaiList.get(i).keySet();
			for (String s : set) {
				System.out.println(s + " " + map.taotaiList.get(i).get(s));
			}

		}
	}
}