哈希表相关定义
- 哈希表(hash table):也称散列表,是存储群体对象的集合类结构。是根据**键(Key)**而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。
- 关键字(key):key可以是对象本身,也可以是对象的一部分(如某个属性),在一个哈希表里每个关键字都必须是唯一的。
- 值域(value):
- 哈希码(Hash Code):若要将对象存储到Hashtable上,就需要将关键字Key映射到一个整型数据,成为Key的哈希码。
- 项(item):Hash Table 的每一项都有两个域:关键字域(key)和值域(value:存储的对象)。key和value可以是任意Object型对象,但是不能为空。
- 装填因子(Load Factor):
java哈希表的构造方法
哈希表的使用
- Hashtable(); //默认构造函数,初始容量为101,最大填充因子0.75
- Hashtable(int capacity);
- Hashtable(int capacity,float loadFactory);
哈希表的主要表示方法
Map map = new HashMap()与HashMap map = new HashMap()区别
Map 是接口 不能实例化的 ,只能使用其实现类来实例化,即
Map map=new Map();是错误的
用接口定义比较灵活以后少改动,是OOP的好习惯。
定义的时候用MAP实例化为HashMap,万一以后要改成Hashtable,产生的改动少。
Map map=new HashMap(); 就是将map实例化成一个hashMap。这样做的好处是调用者不需要知道map具体的实现,map接口与具体实现的映射java帮你做了。打个比方,你是一个头头,手下有几个人:张三,李四等等。你需要手下做一件事情,你关心的是有没有人做,而不关心到底是谁去做,你只需要喊一声:“来人!”具体的是哪个人进来帮你做事无所谓。
如果说这样写: HashMap map = new HashMap();就相当于你指定要张三做事:“来张三!”
就是这样。
关于Map的具体方法和变量, 具体参考官网API
map具体方法描述
原文:https://blog.youkuaiyun.com/Yan_Less/article/details/88819504?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164559730516780274133828%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164559730516780274133828&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-2-88819504.pc_search_result_cache&utm_term=hashmap+%3D+new+hashmap&spm=1018.2226.3001.4187