`
xglv2013
  • 浏览: 38289 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HashMap java实现

    博客分类:
  • Java
阅读更多
1.hashMap类
package hashMap;

import java.util.LinkedList;

public class LvHashMap<K,V> {
	LinkedList[] buckets;//桶数组, 元素类型是链表
	int bucketCount;
	LvHashMap(int bucketCount)
	{
		this.bucketCount = bucketCount;
		buckets = new LinkedList[bucketCount];
		for(int i = 0; i <= bucketCount - 1; i++)
		{
			LinkedList<Pair> l = new LinkedList<Pair>();
			buckets[i] = l;
		}
	}
	
	public void put(K key, V value)
	{
		int hashCode = key.hashCode();
		int index = hashCode % bucketCount;
		for(int i = 0; i <= buckets[index].size() - 1; i++)
		{
			if(((Pair) buckets[index].get(i)).getKey() == key)
			{
				((Pair) buckets[index].get(i)).setValue(value);
				return;
			}
		}
		buckets[index].add(new Pair(key, value));
	}
	
	public V get(K key)
	{
		int hashCode = key.hashCode();
		int index = hashCode % bucketCount;
		for(int i = 0; i <= buckets[index].size() - 1; i++)
		{
			if(((Pair) buckets[index].get(i)).getKey() == key)
			{
				return (V) ((Pair) buckets[index].get(i)).getValue();
			}
		}
		return null;
	}
}

2.链表节点实体类:
package hashMap;

public class Pair {
	Object key;
	Object value;
	Pair(Object key, Object value)
	{
		this.key = key;
		this.value = value;
	}
	public Object getKey() {
		return key;
	}
	public Object getValue() {
		return value;
	}
	public void setValue(Object value) {
		this.value = value;
	}
}

3.测试类:
package hashMap;

public class HashTestDemo 
{
	public static void main(String[] args){
		LvHashMap<String, String> hashMap = new LvHashMap<String, String>(32);
		hashMap.put("key", "value");
		hashMap.put("key", "value2");
		System.out.println(hashMap.get("key"));
		
        LvHashMap<String, Object> hashMap2 = new LvHashMap<String, Object>(32);
        int[] array1 = {1, 2, 3, 4, 5, 6};
        hashMap2.put("key", array1);
        System.out.println(hashMap2.get("key") == array1);
	}
}
1
0
分享到:
评论

相关推荐

    Java中用hashmap实现购物车

    Java语言使用hashmap实现向购物车添加删除修改商品,显示商品信息

    深入Java集合学习系列:HashMap的实现原理

    在Java编程语言中,集合框架是开发者日常工作中不可或缺的一部分,HashMap作为其中的重要成员,它的实现原理对于理解Java性能优化和数据结构有深远的意义。HashMap是一个基于哈希表的数据结构,它实现了Map接口,...

    hashmap实现原理

    哈希映射(HashMap)是Java编程语言中广泛使用的数据结构之一,主要提供键值对的存储和查找功能。HashMap的实现基于哈希表的概念,它通过计算对象的哈希码来快速定位数据,从而实现了O(1)的平均时间复杂度。在深入...

    Java HashMap类详解

    本资源详细介绍了 Java 中的 HashMap 类,包括其实现机制、Hash 存储机制、集合存储机制等方面的知识点。 1. HashMap 和 HashSet 的关系 HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,虽然...

    自定义map实现java的hashmap

    在Java编程中,HashMap是一个非常重要的数据结构,它实现了Map接口,提供了键值对的存储功能,具有快速存取和高效查找的特点。HashMap基于哈希表(也称为散列表)原理,通过键对象的哈希码来定位元素,进而实现O(1)...

    java HashMap原理分析

    5. Java中HashMap的应用和实现 详细解释: 1. 哈希函数的原理和应用 哈希函数是一种将输入数据转换为固定长度的哈希码的函数。在HashMap中,哈希函数用于将Key转换为一个哈希码,然后根据哈希码将Key-Value对存储...

    Java中HashMap的工作机制

    在Java中,HashMap是一种广泛使用的数据结构,它基于哈希表的Map接口实现。哈希表是一种通过哈希过程将键映射到特定位置的数据结构,该位置存储了键对应的值。在详细探讨Java中HashMap的工作机制之前,首先需要理解...

    基于HashMap的用户标签处理兼Java中HashMap实现原理研究.pdf

    "基于HashMap的用户标签处理兼Java中HashMap实现原理研究" 本文研究了基于HashMap的用户标签处理方法,并对Java中HashMap的实现原理进行了深入研究。HashMap是一种高效的数据结构,可以快速地存储和检索数据。本文...

    Java-HashMap.rar_hashmap_java hashmap

    在Java编程语言中,`HashMap`是`java.util`包中的一个核心类,它属于集合框架的一部分,主要用于存储键值对的数据结构。`HashMap`基于哈希表(散列表)实现,提供了快速的插入、删除和查找操作,平均时间复杂度为O(1...

    js 版 java hashmap

    JavaScript中的HashMap并不是内置的数据结构,但在许多开发场景中,我们需要实现类似Java中HashMap的功能,用于存储键值对数据。在JavaScript中,我们通常使用对象(Object)来模拟HashMap的行为,因为对象的属性名...

    用hashmap实现词典查询

    HashMap是Java编程语言中的一种内置数据结构,它提供了O(1)的平均时间复杂度来执行查找、插入和删除操作,这使得它成为构建词典查询系统的理想选择。 首先,我们来深入理解HashMap的工作原理。HashMap基于哈希表的...

    Java8 HashMap的实现原理分析

    Java8之后新增挺多新东西,接下来通过本文给大家介绍Java8 HashMap的实现原理分析,对java8 hashmap实现原理相关知识感兴趣的朋友一起学习吧

    java软件技术文档-深入java8的集合3:HashMap的实现原理.pdf

    HashMap 是 Java 中最常用的集合类之一,它是基于哈希表数据结构实现的,提供快速的存取操作。在深入理解 HashMap 的实现原理之前,我们先要明白哈希表的基本概念。哈希表是一种通过哈希函数将键(Key)映射到数组...

    Java基础-模拟HashMap集合(基于数组和链表) 数组和链表.pdf

    在本文中,我们将详细介绍如何模拟Java的HashMap集合,使用数组和链表来实现Hash表的存储。我们将从基本概念开始,逐步深入到HashMap的实现细节中。 什么是HashMap? HashMap是一种基于散列表的数据结构,用于存储...

    HashMap底层实现原理共6页.pdf.zip

    HashMap在Java中位于`java.util`包下,它继承了抽象类`AbstractMap`,并实现了`Map`接口。 HashMap的主要特点包括: 1. 非线程安全:HashMap不是线程安全的,如果在多线程环境中使用,需要额外的同步措施。 2. ...

    Java集合,HashMap底层实现和原理(1.7数组+链表与1.8+的数组+链表+红黑树) 数组和链表.pdf

    Java集合,HashMap底层实现和原理(1.7数组+链表与1.8+的数组+链表+红黑树) 在Java集合中,HashMap是一个常用的数据结构,它基于Map接口实现,元素以键值对的方式存储,并且允许使用null键和null值。由于key不允许...

    java中HashMap详解.pdf

    Java中的HashMap是一种基于散列机制的Map接口的实现,它允许我们存储键值对。键是唯一的,而值可以重复。HashMap在处理数据时非常高效,因为其操作的时间复杂度接近于O(1)。这是通过使用散列函数将键映射到相应的...

    java 使用web service读取HashMap里的数值

    通过以上步骤,我们成功地实现了使用Java WebService读取`HashMap`中的数值的功能。这种做法不仅适用于简单的数据交换场景,还能够扩展到更复杂的业务逻辑处理中。对于开发者而言,理解和掌握这一技术是构建稳定可靠...

    HashMap的实现原理

    HashMap是Java编程中常用的数据结构,它提供了键值对(key-value pairs)的存储功能,具有高效的查找和插入性能。HashMap基于哈希表实现,它不是线程安全的,因此在多线程环境下需要额外的同步措施。下面我们将详细...

Global site tag (gtag.js) - Google Analytics