今天遇到了LinkedHashMap,觉得有必要记录一下它的特点
1.为啥使用LinkedHashMap?
用普通的键值对映射时(如HashMap),遍历时,顺序是乱的,为了让键值对进出按一定的顺序,所以用LindedHashMap
2.它的特点是啥?
它的特点就是为啥要用它。它的特点是有序的键值对
package test;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
public class LinkedHashMapTest {
public static final Map<String, String> hashMap;
public static final Map<String, String> linkedMap;
static{
hashMap = new HashMap<String, String>();
hashMap.put("key1", "value1");
hashMap.put("key2", "value2");
hashMap.put("key3", "value3");
linkedMap = new LinkedHashMap<String, String>();
linkedMap.put("key1", "value1");
linkedMap.put("key2", "value2");
linkedMap.put("key3", "value3");
}
public static void main(String[] args) {
Collection<String> hashColl = hashMap.values();
Collection<String> linkColl = linkedMap.values();
System.out.println("*************HashMap输出************");
for (String str : hashColl) {
System.out.println(str);
}
System.out.println("*************HashMap结束************\n");
System.out.println("*************linkedMap输出************");
for (String str : linkColl) {
System.out.println(str);
}
System.out.println("*************linkedMap结束************");
}
}
输出结果:
*************HashMap输出************
value3
value2
value1
*************HashMap结束************
*************linkedMap输出************
value1
value2
value3
*************linkedMap结束************
分享到:
相关推荐
Set是使用LinkedHashMap在Go(Golang)中简单的Set数据结构实现。 该库允许您获取一组int64或string而没有重复的项目。 用法 package main import ( "fmt" "github.com/StudioSol/set" ) func main () { ...
这种方法简单直观,易于理解。以下是一个典型的使用`keySet()`遍历`HashMap`的例子: ```java Map, String> map = new HashMap(); for (int i = 0; i ; i++) { map.put("key" + i, "value" + i); } Iterator...
SimpleCacheWithSpringAop##SrpingAop需要配合Spring Aop使用,功能还比较单一,只是在获取数据的时候先进行缓存的查找,找不到的话,在方法内取得数据然后放入缓存。##Annotation利用Annotation判断是否进行缓存,...
下面是一个简单的 `LRUCache` 类实现,使用 `LinkedHashMap` 来实现 LRU 策略: ```java public class LRUCache { private int cacheSize; private LinkedHashMap, Integer> linkedHashMap; public LRUCache...
例如,以下是一个简单的LRU缓存实现,使用`LinkedHashMap`的继承方式: ```java public class LRUCache2, V> extends LinkedHashMap, V> { private final int MAX_CACHE_SIZE; public LRUCache2(int cacheSize) ...
以下是一个简单的示例,展示如何在Intent中传递一个有序的LinkedHashMap: ```java // 创建一个有序Map LinkedHashMap, String> orderedMap = new LinkedHashMap(); orderedMap.put("key1", "value1"); orderedMap....
以上代码创建了一个简单的LRUCache,通过继承`LinkedHashMap`并重写`removeEldestEntry`方法实现了LRU策略。然而,这个实现并不线程安全。为了实现线程安全的LRUCache,我们可以选择以下两种方式: 1. 使用`...
2. **有序遍历**:使用`LinkedHashMap`可以保持元素的插入顺序。 3. **排序**:`TreeMap`可以根据键的自然顺序或自定义比较器来排序键值对。 #### 七、总结 通过本文的学习,我们可以了解到`Map`作为一种非常重要的...
在Java中实现LRU算法,通常会使用数据结构如HashMap或LinkedHashMap来存储页面及其访问信息。HashMap提供快速的查找操作,而LinkedHashMap则同时保持了插入顺序,这对于实现LRU至关重要,因为我们需要快速找到最近...
- 使用自定义类作为键时,需重写hashCode()和equals()方法以保持一致性。 总的来说,`Map`是编程中非常重要的数据结构,它简化了数据的管理和检索。了解其工作原理和使用技巧对于编写高效代码至关重要。在实际项目...
本篇学习笔记将重点介绍列表(List)、集合(Set)、映射(Map)的不同子类的特点和使用方法。 #### 二、List(列表) **List** 是一种有序的集合,允许重复的元素。主要的实现包括ArrayList、LinkedList、Vector...
使用 LinkedHashMap 实现 LRU 缓存是最简单的方法,因为 LinkedHashMap 自身已经实现了顺序存储,默认情况下是按照元素的添加顺序存储,也可以启用按照访问顺序存储,即最近读取的数据放在最前面,最早读取的数据...
- 使用哈希表(如 `LinkedHashMap`)来保证 O(1) 时间复杂度的查找。 **Java 实现** ```java import java.util.LinkedHashMap; import java.util.Map; public class LRUCache, V> { private final int capacity; ...
Spring 2.5是Spring框架的一个重要版本,它引入了大量增强的功能,特别是对注解的支持,这使得在Java应用程序中实现依赖注入和面向切面编程(AOP)变得更加简单和直观。在这个基于注解的例子程序中,我们将深入探讨...
本文将深入探讨LruCache的工作原理、使用方法以及如何在实际项目中进行有效利用。 LruCache全称为“Least Recently Used Cache”,即最近最少使用缓存策略。它是一种常用的缓存淘汰算法,当缓存空间满时,会优先...
下面是一个简单的示例,展示了如何使用Java来提取数据库表的字段信息。 ```java import java.sql.*; import java.util.*; public class DatabaseUtil { private Connection con; public DatabaseUtil...
下面是一个简单的基于`LinkedHashMap`的LRU缓存实现示例: ```java import java.util.HashMap; import java.util.Map; import java.util.LinkedHashMap; public class LRUCache, V> { private final int capacity...
Java LRU算法介绍与用法示例 LRU(Least Recently Used,近期最少使用)算法是一种常用的缓存淘汰算法,它的思想是将长时间没有被利用的数据进行删除。该算法可以应用于缓存系统,例如在用户使用联网的软件的时候,...
它内部使用了`LinkedHashMap`,并且提供了便捷的方法来添加、获取和移除元素。`LRUCache`的最大容量可以通过构造函数设置,当缓存超过这个容量时,最不常使用的数据会被自动删除。 二、Java中的LRU算法与...
下面是一个简单的示例,展示了如何使用`LinkedHashMap`来保留顺序: ```java import org.json.JSONObject; import java.util.*; public class OrderedJSONObject extends JSONObject { public OrderedJSONObject...