方法:将二维数组中的每一项的从下标为1开始,到结束的元素,以map形式存放在List中!
个人觉得的这种方法十分常规,大家看题解就可以看懂。

import java.util.*;


public class Solution {
    /**
     * lru design
     * @param operators int整型二维数组 the ops
     * @param k int整型 the k
     * @return int整型一维数组
     */
   public static int[] LRU (int[][] operators, int k) {
          int row = operators.length;
          int col = operators[0].length;
          List<Map<Integer,Integer>> list = new ArrayList<>();
          ArrayList<Integer> arrayList = new ArrayList<>();


          for(int i=0;i<row;i++){
              System.out.println("=========i="+i+"===========");
              if(operators[i][0]==1){
                  if(list.size()<k) {
                      Map<Integer,Integer> map = new HashMap<>();
                      map.put(operators[i][1],operators[i][2]);
                      list.add(map);
                      //System.out.println("size<3时:"+Arrays.toString(list.toArray()));
                  }

                  else if(list.size()==k){
                      list.remove(0);
                     // System.out.println("size=3时,删除第一位后:"+Arrays.toString(list.toArray()));
                      Map<Integer,Integer> map = new HashMap<>();
                      map.put(operators[i][1],operators[i][2]);
                      list.add(map);
                      //System.out.println("size=3时,加入新一位后:"+Arrays.toString(list.toArray()));


                  }
//                  System.out.println(Arrays.toString(list.toArray()));
              }

              else if(operators[i][0]==2){
                  int size = arrayList.size();
                    for(int j=list.size()-1;j>=0;j--){
//                        System.out.println(list.get(j).get(operators[i][1]));
                        if(list.get(j).get(operators[i][1])!=null){


//                            System.out.println(list.get(j).get(operators[i][1]));
                            arrayList.add(list.get(j).get(operators[i][1]));


                            list.add(new HashMap<>(list.get(j)));
                           // System.out.println("换位前::"+Arrays.toString(list.toArray()));
                            list.remove(j);
                          //  System.out.println("换位后::"+Arrays.toString(list.toArray()));
                            break;
                        }
                        else{
                         continue;
                        }
                    }
                    if(arrayList.size()==size)
                    arrayList.add(-1);
//                  System.out.println(Arrays.toString(arrayList.toArray()));


//
              }
//              System.out.println(Arrays.toString(list.toArray()));
          }
          int[] res=new int[arrayList.size()];
          for(int d=0;d<arrayList.size();d++){
              res[d]=arrayList.get(d);
          }
          return  res;
    }


}