Java HashMap类方法及实例 – put(), get(), isEmpty() 和 size()
HashMap是一种数据结构,它使用哈希函数将识别值(称为键)映射到其相关的值。它包含 “键-值 “对,并允许按键检索值。
最令人印象深刻的特点是它可以快速查找元素,特别是对于大量的元素。默认情况下,它是不同步的,但我们可以通过调用
在创建时,以防止意外地对Map进行不同步的访问。
这些是各种重要的hashmap类方法。这篇文章解释了:put()、get()、isEmpty()和size()。
- put(): java.util.HashMap.put()的作用是将指定的值与该Map中的指定键联系起来。如果该Map以前包含了该键的映射,那么旧的值将被替换。
语法:
参数:
key – 与指定值相关联的键
value – 要与指定的键相关联的值
返回值:之前与键相关的值,如果没有键的映射,则返回空。
- get(): java.util.HashMap.get()方法返回指定键所映射的值,如果这个Map不包含键的映射,则返回null。
语法:
参数:
key – 要返回其关联值的键
返回值:指定的键被映射到的值,如果这个Map不包含键的映射,则为空。
- isEmpty(): java.util.HashMap.isEmpty()方法在Map不包含键值映射时返回true。
语法:
返回值: 如果该Map不包含键值映射,则为true。
- size(): java.util.HashMap.size()返回该Map中键值映射的数量。
语法:
返回值: the number of key-value mappings in this map.
实现说明上述方法
输出
HashMap和TreeMap之间有什么区别
- HashMap实现了Map接口,而TreeMap实现了SortedMap接口。分类Map接口是Map的一个子接口。
- HashMap实现了Hashing,而TreeMap实现了Red-Black Tree(一种自平衡二进制搜索树)。因此,Hashing和平衡二进制搜索树之间的所有区别都适用于此。
- HashMap和TreeMap都有其对应的HashSet和TreeSet。HashSet和TreeSet实现了Set接口。在HashSet和TreeSet中,我们只有键,没有值,这些主要用于查看集合中的存在/不存在。对于上述问题,我们不能使用HashSet(或TreeSet),因为我们不能存储计数。比起HashMap(或TreeMap),我们更喜欢HashSet(或TreeSet)的一个例子是打印一个数组中所有不同的元素。
Java中的HashMap和HashTable有什么区别
- HashMap是非同步的。它不是线程安全的,如果没有适当的同步代码,就不能在许多线程之间共享,而Hashtable是同步的。它是线程安全的,可以与许多线程共享。
- HashMap允许一个空键和多个空值,而Hashtable不允许任何空键或空值。
- 如果不需要线程同步,HashMap通常比HashTable更受欢迎。
- HashMap是Hashtable的一个高级版本和改进。HashMap是后来创建的。
HashMap和HashSet之间有什么区别
- HashMap存储键值对(例如,学生的记录为值,卷号为键),而HashSet只存储键(例如,一个整数集合)。
- HashSet内部使用HashMap来存储键值。