iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java LRU算法介绍与用法示例
  • 881
分享到

java LRU算法介绍与用法示例

javalru算法 2023-05-31 04:05:21 881人浏览 安东尼
摘要

本文实例讲述了java LRU算法介绍与用法。分享给大家供大家参考,具体如下:1.前言在用户使用联网的软件的时候,总会从网络上获取数据,当在一段时间内要多次使用同一个数据的时候,用户不可能每次用的时候都去联网进行请求,既浪费时间又浪费网络这

本文实例讲述了java LRU算法介绍与用法。分享给大家供大家参考,具体如下:

1.前言

在用户使用联网的软件的时候,总会从网络上获取数据,当在一段时间内要多次使用同一个数据的时候,用户不可能每次用的时候都去联网进行请求,既浪费时间又浪费网络

这时就可以将用户请求过的数据进行保存,但不是任意数据都进行保存,这样会造成内存浪费的。LRU算法的思想就可以运用了。

2.LRU简介

LRU是Least Recently Used 近期最少使用算法,它就可以将长时间没有被利用的数据进行删除。

LRU在人们一些情感中也体现的得很好的。当你和一群朋友接触的时候,经常联系的人关系是很好的,若很久没有联系到最后估计都不会再有联系了,也就会是失去这位朋友了。

3.下面通过代码展现LRU算法:

最简单的一种方法是利用LinkHashMap,因为它本身就有一个方法就是在所设置的缓存范围内,去除掉额外的旧数据

public class LRUByHashMap<K, V> {   private int cacheSize;  private int currentSize; private LinkedHashMap<K, V> maps; public LRUByHashMap(int cacheSize1) { this.cacheSize = cacheSize1; maps = new LinkedHashMap<K, V>() {    private static final long serialVersionUID = 1;  // 这里移除旧的缓存数据  @Override  protected boolean removeEldestEntry(java.util.Map.Entry<K, V> eldest) {  // 当超过缓存数量的时候就将旧的数据移除  return getCurrentSize() > LRUByHashMap.this.cacheSize;  } }; } public synchronized int getCurrentSize() { return maps.size(); } public synchronized void put(K k, V v) { if (k == null) {  throw new Error("存入的键值不能为空"); } maps.put(k, v); } public synchronized void remove(K k) { if (k == null) {  throw new Error("移除的键值不能为空"); } maps.remove(k); } public synchronized void clear() { maps = null; } // 获取集合 public synchronized Collection<V> getCollection() { if (maps != null) {  return maps.values(); } else {  return null; } } public static void main(String[] args) { // 测试 LRUByHashMap<Integer, String> maps = new LRUByHashMap<Integer, String>(  3); maps.put(1, "1"); maps.put(2, "2"); maps.put(3, "3"); maps.put(4, "4"); maps.put(5, "5"); maps.put(6, "6"); Collection<String> col = maps.getCollection(); System.out.println("存入缓存中的数据是--->>" + col.toString()); }}

--结束END--

本文标题: java LRU算法介绍与用法示例

本文链接: https://www.lsjlt.com/news/223350.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java LRU算法介绍与用法示例
    本文实例讲述了java LRU算法介绍与用法。分享给大家供大家参考,具体如下:1.前言在用户使用联网的软件的时候,总会从网络上获取数据,当在一段时间内要多次使用同一个数据的时候,用户不可能每次用的时候都去联网进行请求,既浪费时间又浪费网络这...
    99+
    2023-05-31
    java lru 算法
  • Java实现LRU缓存算法的参考示例
    目录一、什么是 LRU二、Java 实现 LRU 缓存算法一、什么是 LRU LRU(Least Recently Used,最近最少使用)是...
    99+
    2023-05-20
    Java 算法 Java LRU缓存算法 Java LUR
  • Java中Redis回收算法LRU的示例分析
    这篇文章给大家分享的是有关Java中Redis回收算法LRU的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。如何通俗易懂的理解LRU算法?1.LRU是什么?LRU全称Least Recently Used...
    99+
    2023-06-20
  • PHP实现LRU算法的示例代码
    本篇文章主要给大家介绍了PHP的相关知识,LRU是Least Recently Used 近期最少使用算法, 内存管理的一种页面置换算法,下面将详解LRU算法的原理以及实现,下面一起来看一下,希望对大家有帮助。(推荐教程:PHP视频教程)原...
    99+
    2022-08-08
    php
  • JavaScript手写LRU算法的示例代码
    目录一、基本要求二、数据结构2.1 Map2.2 Doubly Linked List三、Map 实现四、双向链表实现4.1 定义节点类4.2 定义链表类4.3 定义 LRU 类4....
    99+
    2022-11-13
  • JavaScript实现LRU算法的示例详解
    目录LRU简介如何实现实现思路缺陷双向链表+哈希表双向链表实现思路不知道屏幕前的朋友们,有没有和我一样,觉得LRU算法原理很容易理解,实现起来却很复杂。 明明一个map就能解决,标准...
    99+
    2023-05-17
    JavaScript实现LRU算法 JavaScript LRU算法 JavaScript LRU
  • Java中的递归方法示例介绍
    目录递归递归的注意事项:案例一递归求阶乘不使用递归实现阶乘使用递归实现阶乘澳大利亚不死神兔(斐波那契数列)使用数组实现使用递归实现总结递归 方法定义本身调用方法本身的现象叫做递归 在...
    99+
    2022-11-12
  • K-means聚类算法介绍与利用python实现的代码示例
    聚类 今天说K-means聚类算法,但是必须要先理解聚类和分类的区别,很多业务人员在日常分析时候不是很严谨,混为一谈,其实二者有本质的区别。 分类其实是从特定的数据中挖掘模式,作出判断的过程。比如Gmail...
    99+
    2022-06-04
    示例 算法 代码
  • Razor常用语法介绍及示例
    @using @using 指令用于向生成的视图添加 C# using 指令: @using System.IO @{ var dir = Directory.GetCurr...
    99+
    2022-11-13
  • MediaPlayer音频与视频播放方法示例介绍
    目录Android多媒体 MediaPlayer1.相关方法详解1)获得MediaPlayer实例:2)设置播放文件:3)其他方法2.使用代码示例示例一:使用MediaPlayer播...
    99+
    2023-05-17
    Android MediaPlayer音频视频播放 Android MediaPlayer
  • java LRU算法及Apache LRUMap源码实例分析
    本篇内容主要讲解“java LRU算法及Apache LRUMap源码实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java LRU算法及Apache LRUMap源...
    99+
    2023-06-21
  • php加密算法的实例介绍
    本篇内容主要讲解“php加密算法的实例介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php加密算法的实例介绍”吧!<php#加密算法header(&#...
    99+
    2022-10-19
  • Android MaterialCardView的使用介绍与示例
    Android—MaterialCardView的使用 我们的征程是星辰大海,而非人间烟尘 文章目录 Android---MaterialCardView的使用演示xml布局其他的...
    99+
    2022-11-12
  • Java之理解Redis回收算法LRU案例讲解
    如何通俗易懂的理解LRU算法? 1.LRU是什么? LRU全称Least Recently Used,也就是最近最少使用的意思,是一种内存管理算法,最早应用于Linux操作系统。 L...
    99+
    2022-11-12
  • javascript中的枚举算法实例介绍
    本篇内容介绍了“javascript中的枚举算法实例介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ja...
    99+
    2022-10-19
  • Java算法和排序的介绍及使用
    本篇内容介绍了“Java算法和排序的介绍及使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、前言什么是算法算法是某种集合,是简单指令的集...
    99+
    2023-06-16
  • 介绍java中的常见排序算法
    Java中的排序算法主要包括以下几种: 冒泡排序(Bubble Sort)选择排序(Selection Sort)插入排序(Insertion Sort)快速排序(Quick Sort)归并排序(Merge Sort)堆排序(Heap So...
    99+
    2023-10-26
    算法 排序算法 数据结构 java 笔记 学习
  • C#单例模式与多线程用法介绍
    一、单例模式 我们先来看看两种创建单例模式的示例代码。 1、饿汉式  饿汉式创建单例模式是在程序里面直接初始化了一个对象实例: class Good { /// &...
    99+
    2022-11-13
  • PyTorch device与cuda.device用法介绍
    目录1 查看当前的device2 cpu设备可以使用“cpu:0”来指定3 gpu设备可以使用“cuda:0”来指定4 查询CPU和G...
    99+
    2022-11-13
  • Ribbon负载均衡算法原理与使用介绍
    负载均衡算法:rest接口第几次请求数 % 服务器集群总数量 = 实际调用服务器位置下标 ,每次服务重启动后rest接口计数从1开始。 List<ServiceInstance...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作