题目分析:其他内容正在学习中…
【HashMap为什么会出现?】
- 数组的特点:数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;
- 链表:链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(n)。链表的特点是:寻址困难,插入和删除容易。
- 是否有既寻址容易,插入和删除困难又简单的数据结构?
这就是哈希表,其具体数据结构传送门: link.
【HashMap的常用命令有哪些?】
- 首先在使用前,我们需要新建一个哈希表:
HashMap<Integer, Integer> hashMap = new HashMap<>();
- 之后,我们往往要输入键值对,使用**map.put(key, value)**方法:
hashMap.put(5, 2);
当在hashmap中put的key在之前已经存过,则不会重复存储,会覆盖之前key对应的value。
- 当你需要删除键值对时,可以使用map.remove(key):
- 另外我们常用用到以下方法:
- containsKey(Object key)方法,返回值为boolean,用于判断当前hashmap中是否包含key对应的key-value
- containsValue(Object value)方法,返回值为boolean,用于判断当前hashmap中是否包含value对应的key-value
- 遍历hashmap的方法利用haspmap.entrySet().iterator():利用迭代器,从Entry中取出键、取出值,推荐使用这种方式进行遍历,效率较高。
Iterator<Entry<Integer, Integer>> iterator = hashMap.entrySet().iterator();
while (iterator.hasNext()) {
Entry<Integer, Integer> entry = iterator.next();
Integer key = entry.getKey();
Integer value = entry.getValue();
System.out.print(key + "--->" + value);
System.out.println();
}
【题目拓展】
暂无