8.12

Heap:

LRU Cache:
用hashmap和双向linkedlist结合做缓存,hashmap使得查询时间是O(1),链表用来保存时间轴

Hash Function 如何实现

PriorityQueue comparator的实现:

        //k 必须要有, 是Integer 不是 int 注意
//这个是从小到大排序的!
         PriorityQueue<Integer> pq = new PriorityQueue<Integer>(k, new Comparator<Integer>() {
             public int compare(Integer o1, Integer o2) {
                 if(o1 > o2) {
                     return 1;
                 } else if(o1 < o2) {
                     return -1;
                 } else {
                     return 0;
                 }
             }
         });

排序用priorityqueue有奇效,求第k个大的数,前K个大的数,用一个minheap

遍历HashMap:

for(Map.Entry<Integer, Integer> entry : map.entrySet()) {
  getKey()
  getValue()
Collections.sort(result, Collections.reverseorder())

巧妙 需要学习

        for (Point p : points) {
            pq.add(p);
            if (pq.size() > k) {
                pq.poll();
            }
        }

!!!
降序
return o2 - 0o1

int compare(Object o1, Object o2) 返回一个基本类型的整型
如果要按照升序排序,
则o1 小于o2,返回-1(负数),相等返回0,01大于02返回1(正数)
如果要按照降序排序
则o1 小于o2,返回1(正数),相等返回0,01大于02返回-1(负数)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 8. 公共约定 许多ODP API与参数和返回值类型共享常见的约定。本节重点介绍一些比较常见和常用的惯例。 8.1...
    半天妖阅读 1,002评论 0 1
  • 公告:今日开始更新,都独立成文,不在同一文章内追加,该篇作为起始,留念! 咳咳,前方高能,请戴上钛合金gou眼观影...
    宁白衣阅读 4,284评论 14 20
  • 1. 反思: 摘录《贫困生给女主播订燕窝:虚荣的人,会有什么下场?》: 事实上,很多虚荣的人,都抱有这样一种观念,...
    倚岚听风阅读 173评论 0 0
  • 一、目标:2017年轻松赚到20万,同时拍摄完3部电影作品 动机和愿景: 愿我现在及过去所有种下的有关财富的种子早...
    易江南从心出发阅读 497评论 0 2
  • 这篇文章,源于一个朋友的询问,爆发于和某个知乎大牛的激烈讨论。干货的用处究竟有没有那么大?看干货是不是百利无一害?...
    Scarlet绯月阅读 357评论 0 1