【Java】主要用到LinkedHashMap这个结构,既有队列有序存放的特点,又有map能够存放键值对的特点

public int[] LRU(int[][] operators,int k) {
        //存放输出结果
        List<Integer> list = new ArrayList<Integer>();
        //存放key-value键值对
        Map<Integer,Integer> map = new LinkedHashMap<Integer,Integer>();
        for(int[] arr:operators) {
            int key = arr[1];
            int flag = arr[0];
            if(flag==1) {//存
                if(map.size()<k) {
                    map.put(key, arr[2]);
                }else {
                    Iterator<Integer> it = map.keySet().iterator();
                    map.remove(it.next());
                    map.put(key, arr[2]);

                }

            }
            else {//取
                if(map.containsKey(key)) {
                    int value = map.remove(key);
                    list.add(value);
                    map.put(key, value);
                }
                else {
                    list.add(-1);
                }
            }
        }
        int[] ans = new int[list.size()];
        int i=0;
        for(int num:list) {
            ans[i++] = num;
        }
        return ans;

    }