900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 新浪微博Java校招笔试题

新浪微博Java校招笔试题

时间:2022-09-08 04:37:52

相关推荐

新浪微博Java校招笔试题

第二题是实现一个lru cache , 我想到了linkedHashMap , 但是没有找到合适的api

自己撸了一个,通过了66%

1 package interview; 2 3 import java.util.HashMap; 4 import java.util.LinkedHashMap; 5 import java.util.LinkedList; 6 7 /** 8 * @program: Leetcode 9 * @description:10 * @create: -08-31 16:3211 **/12 public class Sina2 {13 14int cap;15HashMap<Integer,Integer> values = new HashMap<>();16HashMap<Integer,Boolean> exist = new HashMap<>();17LinkedList<Integer> queue = new LinkedList<>();18 19public Sina2(int capacity) {20 this.cap = capacity;21}22 23public int get(int key) {24 if (exist.get(key)){25 int temp = values.get(key);26 queue.remove((Integer) key);27 queue.addFirst((Integer) key);28 System.out.println(temp);29 return temp;30 }else {31 System.out.println(-1);32 return -1;33 }34}35 36 37public void put(int key, int value) {38 if (queue.size() == cap){39 int kk = queue.get(cap-1);40 //exist.remove(kk);41 exist.put(kk,false);42 values.put(key,value);43 exist.put(key,true);44 queue.removeLast();45 queue.addFirst(key);46 }else {47 queue.addFirst(key);48 values.put(key,value);49 exist.put(key,true);50 }51 52}53 54public static void main(String[] args) {55 Sina2 sina2 = new Sina2(2);56 sina2.put(1,1);57 sina2.put(2,2);58 sina2.get(1);59 sina2.put(3,3);60 sina2.get(2);61 sina2.put(4,4);62 sina2.get(1);63 sina2.get(3);64 sina2.get(4);65 66}67 }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。