核心提示:Map 是一种数据结构,用来实现key和value 的映射。通过Key可以找到Value。实现类包括 HashMap,LinkedHashMap,TreeMap /** * Applies a supplemental hash function to a given hashCode, which * defends against poor quality hash functions. This is cr
Map 是一种数据结构,用来实现key和value 的映射。通过Key可以找到Value。实现类包括
HashMap,LinkedHashMap,TreeMap
-
-
-
-
-
-
-
-
static int hash(int h) {
-
-
-
-
h ^= (h >>> 20) ^ (h >>> 12);
-
return h ^ (h >>> 7) ^ (h >>> 4);
-
}
-
-
-
-
-
static int indexFor(int h, int length) {
-
return h & (length-1);
-
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
public V put(K key, V value) {
-
if (key == null)
-
return putForNullKey(value);
-
int hash = hash(key.hashCode());
-
int i = indexFor(hash, table.length);
-
for (Entry<K,V> e = table[i]; e != null; e = e.next) {
-
Object k;
-
if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
-
V oldValue = e.value;
-
e.value = value;
-
e.recordAccess(this);
-
return oldValue;
-
}
-
}
-
-
modCount++;
-
addEntry(hash, key, value, i);
-
return null;
-
}
HashMap 是以数组的结构,用哈希函数值跟数组的长度做位与运算,获取对应数组的索引。浏览key值时,不保证顺序。
LinkedHashMap 是以双向列表的结构做实现的,浏览key值时候,可以保证顺序。LinkedHashMap继承HashMap ,不同的是数据存储结构。
TreeMap 是以二叉树实现的Map接口。Map中的key值按照从小到大的顺序排列。key要实现comparable。
分享到:
相关推荐
Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构。Map不同于List,List是以索引来访问元素,而Map...在实际开发中,根据应用程序特定的需求,选择合适的Map实现能更好地优化数据结构和性能。
Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构,其中每个键都是唯一的,并且与一个值相关联。Map集合不同于List,因为它不维护元素的顺序,而是通过键来访问其对应的值。本文将详细介绍...
Map 集合是 Java 中一种非常常用的数据结构,了解 Map 集合的用法、Map 接口和方法、Map 的实现类、Map 的遍历和优化等方面的知识点,可以帮助开发者更好地使用 Map 集合,提高应用程序的性能和效率。
在Java编程中,HashMap是一个非常重要的数据结构,它实现了Map接口,提供了键值对的存储功能,具有快速存取和高效查找的特点。HashMap基于哈希表(也称为散列表)原理,通过键对象的哈希码来定位元素,进而实现O(1)...
Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构。Map不同于数组和List,因为它不依赖于连续的索引访问元素,而是通过键(Key)来查找对应的值(Value)。Map接口提供了多种实现,如...
此外,`equals(Object o)`和`hashCode()`方法用于比较Map对象的等价性和计算哈希值,这对于实现Map的比较和存放在哈希表中至关重要。 Map接口还有个内部类`Map.Entry`,它代表Map中的一个键值对。通过`Map.entrySet...
了解这些知识点有助于理解和使用Java中的Map,特别是在处理大量数据时选择适合的Map实现类,以及在遍历和操作Map时选择高效的方式。在多线程环境中,如果需要线程安全,可以考虑使用ConcurrentHashMap。在需要有序...
总结起来,Java集合框架提供了多种数据结构和算法,通过接口和实现类的组合,可以根据实际需求选择合适的数据结构,同时通过Collections工具类进行便捷操作。正确实现equals()和hashCode()方法对于集合操作的正确性...
在Java编程语言中,Map接口是集合框架的一部分,它提供了键值对的存储方式。Map不是列表或数组,而是关联键(key)与值(value)的容器,每个...通过实践这些示例,你可以更熟练地在Java项目中运用Map接口及其实现类。
HashMap是Java中的一个接口java.util.Map的实现类,它允许使用null键和null值。HashMap通过使用哈希函数将键映射到数组的特定位置,以实现快速查找、插入和删除操作。其时间复杂度通常为O(1),但在最坏的情况下,当...
在Java编程语言中,`hashCode()` 和 `equals()` 方法是两个非常重要的概念,尤其是在处理集合类如 `List`, `Set`, `Map` 时。它们主要用于优化存储和查找效率,尤其是当涉及到哈希表(如 `HashMap` 和 `HashSet`)时...
7. **异常处理**:Exception类及其子类构成异常层次结构,用于处理程序运行中的错误和异常情况。try-catch-finally语句块是处理异常的标准模式。 8. **日期时间**:Java 8引入了新的日期和时间API(java.time包),...
Java 集合是 Java 编程语言中最重要和最常用的数据结构之一。它提供了多种方式来存储和操作数据,从而提高了程序的效率和可读性。本文将对 Java 集合的基本概念、实现原理和常用方法进行详细的解释。 集合框架概述 ...
Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了一组高级的数据结构,...总之,这个实验深入地实践了Java集合框架的使用,加深了对集合概念、接口和实现类的理解,为后续的Java开发打下了坚实的基础。