思路:
用一个map实现get和set的功能
用一个LinkedList<string> array实现最少访问节点删除的功能,根据题目只要求最常访问和最少访问,因此根据访问顺序将节点插入到LinkedList中,list越靠前为越少访问的。
用一个ArrayList<integer> ret实现保存get()的结果,由于需要返回int[]数组,需要进行ArrayList<integer>到int[]的转换</integer></integer></string>

ret.stream().mapToInt(Integer::valueOf).toArray();
整体逻辑:
如果是插入操作:
    判断array.size()是否小于k,
        如果小于k,
            将键插入到array中,
        否则
            从array中删除第一个元素,将键插入到array中,map中调用set方法存放键值对
如果是查询操作:
    从map中获取数据,如果为空,ret.add(-1),否则ret.add(data),并更新array


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) {
        // write code here
        Map<String,Integer>map=new HashMap<>();
        LinkedList<String> array=new LinkedList();
        ArrayList<Integer> ret=new ArrayList();


        for(int i=0;i<operators.length;i++){

//                 set数据
//                 System.out.println("operators[i][0]"+operators[i][0]);

                if(operators[i][0]==1){
//                     添加数据
//                     没有数据
//                     if(map.get(String.valueOf(operators[i][1]))==null){
                    if(array.size()<k){

                        array.add(String.valueOf(operators[i][1]));
                    }else{
                        map.remove(array.get(0));
                        array.removeFirst();
                        array.addLast(String.valueOf(operators[i][1]));
                    }
                    map.put(String.valueOf(operators[i][1]),operators[i][2]);
//                    read数据
                }else{
                    Integer data=map.get(String.valueOf(operators[i][1]));
                    if(data==null){
                        ret.add(-1);
                        continue;
                    }
//                     获取当前访问的索引
                    int index=array.indexOf(String.valueOf(operators[i][1]));
//                     更新访问的列表
                    String readnow=array.get(index);
                    array.remove(index);
                    array.addLast(readnow);
//                     添加数据到返回列表
                    ret.add(data);

                }

        }
        return ret.stream().mapToInt(Integer::valueOf).toArray();
    }

}