LinkedHashMap :具有可预知的迭代顺序。区别与HashMap的是前者维护一个双向链表
2.1 此实现可以让客户避免未指定的、由 HashMap(及 Hashtable)所提供的通常为杂乱无章的排序工作,同时无需增加与 TreeMap 相关的成本。使用它可以生成一个与原来顺序相同的映射副本,而与原映射的实现无关。
2.2 优点:此类提供所有可选的 Map 操作,并且允许 null 元素。HashMap 迭代时间很可能开支较大,因为它所需要的时间与其容量 成比例。
2.3 链接的哈希映射具有两个影响其性能的参数:初始容量和加载因子。它们的定义与 HashMap 极其相似。要注意,为初始容量选择非常高的值对此类的影响比对 HashMap 要小,因为此类的迭代时间不受容量的影响。
2.4 基本使用:
public LinkedHashMap(int initialCapacity,
float loadFactor,
boolean accessOrder)构造一个带指定初始容量、加载因子和排序模式的空 LinkedHashMap 实例。
initialCapacity - 初始容量。
loadFactor - 加载因子。
accessOrder - 排序模式 - 对于访问顺序,为 true;对于插入顺序,则为 false。
这种映射很适合构建 LRU 缓存。即在构造这个类的时候,第三个个参数用true,那么表示按插入顺序排序。 设置了MAXSIZE=3,如果插入的到第三个,那么第一个插入的数据就会被丢失。即最少使用缓存表。
分享到:
相关推荐
1. 集合框架:Java.util包是Java集合框架的基础,包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。这些集合类为存储和操作对象提供了灵活的方式。例如,ArrayList实现了...
java.util.LinkedHashMap,V> (implements java.util.Map,V>) org.springframework.core.annotation.AnnotationAttributes org.springframework.core.annotation.AnnotatedElementUtils org.springframework.core....
1. `java.util.ArrayList`:ArrayList是Java集合框架中的一种动态数组,它允许快速的元素访问,但插入和删除操作相对较慢。 2. `java.io.IOException`:这是所有I/O异常的基类,用于处理输入/输出操作中的错误。 3...
本文将对Java.lang.Object类、Java.lang.Integer类、Java.lang.String类、java.util.Arrays类、java.util.ArrayList类、java.util.LinkedList类、java.util.HashMap类、java.util.HashSet类、java.util....
1. **注解驱动的配置**: 在Spring 2.5之前,开发者通常使用XML配置文件来定义bean的创建和依赖关系。然而,2.5版本引入了如`@Component`、`@Service`、`@Repository`和`@Controller`等注解,使得可以将这些配置...
1. 集合框架:Java集合框架是`java.util`包的核心,它提供了一组接口和类来存储和操作对象。主要接口包括`Collection`、`List`、`Set`和`Map`。其中,`ArrayList`和`LinkedList`实现了`List`接口,分别提供基于数组...
- `java.util.Map`: 包含`HashMap`, `TreeMap`, `LinkedHashMap`等,用于存储键值对,提供高效查找和映射功能。 - `java.util.stream.Stream`:Java 8引入的流API,支持函数式编程,用于处理集合数据。 4. **IO流...
Java的`java.util.HashMap`和`java.util.LinkedHashMap`是两种常见的散列表实现。 12. 双向链表:双向链表中的每个节点包含前后两个指针,支持双向遍历。Java的`java.util.Deque`接口和`java.util.LinkedList`类...
1. 集合框架:Java中的集合框架是`java.util`包的核心,包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。它们提供了存储和操作对象的基本功能,支持动态扩展和多种操作,如...
Java的`java.util.HashMap`和`java.util.LinkedHashMap`是哈希表的实现。 7. 图:图是由节点(顶点)和连接节点的边构成的数据结构,广泛用于表示关系网络。在Java中,通常使用对象和引用来实现图。 8. 堆:堆是一...
6. **哈希表**:哈希表通过哈希函数实现快速查找,Java的`java.util.HashMap`和`java.util.LinkedHashMap`提供了哈希表实现。 7. **二叉树**:二叉树每个节点最多有两个子节点,分为二叉搜索树(BST)、平衡二叉树...
哈希表是一种通过哈希函数快速定位数据的数据结构,Java的`java.util.HashMap`和`java.util.LinkedHashMap`就是典型的哈希表实现。哈希表提供了近乎常数时间的查找、插入和删除操作,但在处理哈希冲突时需要注意性能...
1. **集合框架**:`java.util`包是Java集合框架的基础,包括List、Set、Queue和Map接口。List接口代表有序的元素集合,允许重复元素,如ArrayList和LinkedList。Set接口存储不重复元素,如HashSet。Queue接口表示...
int[] array2 = java.util.Arrays.copyOf(array1, array1.length); System.out.println(System.currentTimeMillis() - start); ``` #### 2. 对象集合 (Set) - **接口介绍**:`Set` 是一个不包含重复元素的集合,...
Java的`java.util.HashMap`和`java.util.LinkedHashMap`是常见的实现。 6. **树**:分层的数据结构,如二叉树(Binary Tree)、二叉搜索树(BST)、AVL树、红黑树等,用于高效搜索、排序等。Java的`java.util....
Java的`java.util.HashMap`和`java.util.LinkedHashMap`类是哈希表的实现,分别提供了无序和有序的访问方式。 7. **二叉树**:二叉树是一种每个节点最多有两个子节点的数据结构,分为二叉搜索树(BST)、平衡树(如...
Java的`java.util.HashMap`和`java.util.LinkedHashMap`是常用的实现。 7. **树**:包括二叉树、平衡树(如AVL树和红黑树)等。二叉树常用于搜索和排序,平衡树则保证了高效的查找性能。 8. **图**:图由顶点和边...
1. **`java.util.Arrays`**: 这个类提供了大量用于操作数组的方法,包括排序(`sort()`)、搜索(`binarySearch()`)、复制(`copyOf()`)和填充(`fill()`)等。例如,你可以使用`Arrays.sort(int[] array)`对整型...
在Java中,可以使用`LinkedHashMap`实现LRU,因为它的插入和删除操作具有O(1)的时间复杂度,并能按照访问顺序自动排序。 现在让我们看看Java中如何实现这些算法: 对于FIFO,可以创建一个`LinkedList`存储缓存中的...