如何自己设计一个高效类似于HashMap的容器
来源:互联网 发布:linux 卸载 工具 编辑:程序博客网 时间:2024/05/20 04:28
每一个找工作的人,对于Java collections的问题都会很熟悉,JDK 的java.util这个工具类中有各种容器的设计与实现。Hashmap是对map接口的一种实现,是一种使用很频繁的容器。
1.HashMap与Hashtable
相比较于Hashtable,HashMap非线程安全,每一个定义的方法都没有进行锁定,所以多线程情况下会高效但是会出现数据不同步问题,而hashtable适用于单线程的程序,因为它定义 的方法都使用了Synchronized进行了锁定。
2.如何设计一个高效的map容器
我的想法是在原有hashmap设计的基础上,去调用hashtable的东西,并在hashtable的基础上进行优化,尽量细化锁的粒度,这样在多线程中使用容器时,才能实现线程之间不会造成数据被锁,而导致效率低下。
3.自定义
其实也可以在2中的思想基础上,完全自定义一个类实现map接口,对于线程共享资源,让每个线程保存副本或者依次访问,进而实现多线程下的工作。
阅读全文
0 0
- 如何自己设计一个高效类似于HashMap的容器
- 如何设计一个可用的web容器
- 如何设计一个可用的web容器
- 如何设计一个可用的web容器
- 如何设计一个属于自己的网站
- 如何设计一个web容器
- 如何设计一个web容器
- 自己写的一个功能类似于strtok函数的函数
- 怎么自己创建一个类似于smart的模版引擎
- [置顶] 如何设计一个可用的web容器
- 自己写的一个Java Bean转换为HashMap及ArrayList容器的功能类,支持Hibernate
- 自己实现一个简单版的HashMap
- 自己实现的一个高效快速排序: )
- 一个电子类专业大学生该如何设计自己的路?
- 如何自己写一个容器来实现viewController之间的切换
- 如何开发自己的容器控件
- 一个高效的定时器分析及设计
- 一个高效的定时器分析及设计
- LeetCode
- 推挽输出、开漏输出、线或、线与、竞争、冒险、毛刺【基本概念】
- python2.7安装mysql的数据驱动
- find与逻辑关系运算
- Event事件对象之动画事件和过渡事件
- 如何自己设计一个高效类似于HashMap的容器
- CSU1561 (More) Multiplication
- 算法之二分查找(进阶版 java/c++)
- 工作小结--关联表的(可为空的情况下)条件添加
- 同步的三种方式:volatile、锁、final
- php的数据类型总结
- scala 随笔(8)list 源码解析
- JMock实践---(六)方法调用次数
- Spring Boot浅谈(是什么/能干什么/优点和不足)