首先在了解使用方法前,我们先要弄懂什么是HashMap:
1、HashMap是Java中最常用的集合类框架,也是Java语言中非常典型的数据结构。
2、数组特点
存储区间是连续,且占用内存严重,空间复杂也很大,时间复杂为O(1)。优点:是随机读取效率很高,原因数组是连续(随机访问性强,查找速度快)。缺点:插入和删除数据效率低,因插入数据,这个位置后面的数据在内存中要往后移的,且大小固定不易动态扩展。
3、链表特点
区间离散,占用内存宽松,空间复杂度小,时间复杂度O(N)。优点:插入删除速度快,内存利用率高,没有大小固定,扩展灵活。缺点:不能随机查找,每次都是从第一个开始遍历(查询效率低)。
4、哈希表特点
哈希表也叫散列表,是一种神奇的结构,最大的特点就是快。它的结构有很多种,最流行、最容易理解的是:顺序表+链表的结构。主结构是长度可以动态变化的顺序表,每个顺序表的节点可以单独引出一个链表。
通俗来说,HashMap<key,value>就是一个键(key)对应着一个值(value)。
1.HashMap类的put(添加)、remove(删除)、map.get()(查看)、遍历
public class HashMap1 {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
//添加元素
map.put("王五", "王五媳妇");
map.put("赵四", "赵四媳妇");
map.put("刘能", "刘能媳妇");
//原有Key键的值会替换成新值
map.put("刘能", "刘能小三");
System.out.println(map);
//删除元素
map.remove("王五");
System.out.println(map);
//查看元素
System.out.println(map.get("刘能"));
//获取所有的键(key) 获取键集
Set<String> keys = map.keySet();
System.out.println(keys);
//遍历键集 得到每一个键
for (String key : keys) {
String value = map.get(key);
System.out.println(key + "的cp是" + value);
}
}
}
输出:
D:\Java\jdk17\bin\java.exe -javaagent:D:\IDEA\lib\idea_rt.jar=7502:D:\IDEA\bin -Dfile.encoding=UTF-8 -classpath D:\code\gyw\out\production\Day09 cn.com.Map.HashMap1
{王五=王五媳妇, 赵四=赵四媳妇, 刘能=刘能小三}
{赵四=赵四媳妇, 刘能=刘能小三}
刘能小三
[赵四, 刘能]
赵四的cp是赵四媳妇
刘能的cp是刘能小三