集合—HashMap
Published on 2022-10-18 14:00 in 分类: 集合 with 花海~
分类: 集合

集合—HashMap

HashMap(键值对存储)

HashMap是一种哈希表,哈希表也叫散列表,是一种神奇的结构,最大的特点就是快。它的结构有很多种,最流行、最容易理解的是:顺序表+链表的结构。主结构是长度可以动态变化的顺序表,每个顺序表的节点可以单独引出一个链表。
HashMap是一个集合,键值对的集合,源码中每个节点用Node<K,V>表示

一、存储数据,put方法

HashMap<Integer,String> hashMap = new HashMap<Integer,String>();
hashMap.put(1,"HH");
hashMap.put(2,"DD");
hashMap.put(3,"ZZ");
System.out.println(hashMap);
//输出{1=HH, 2=DD, 3=ZZ}

同时在使用put存储一遍相同key不同vaue的值,上一次被赋值的会被覆盖例

hashMap.put(3,"LL");
System.out.println(hashMap);
//这时候输出{1=HH, 2=DD, 3=LL}

二、获取数据get方法,直接填写相应的key就可以获取对应的value值

System.out.println(hashMap.get(1));
System.out.println(hashMap.get(2));
//输出HH DD

三、删除remove方法

hashMap.remove(3);//删除了key为3的值,即删除了LL
System.out.println(hashMap);
//输出{1=HH, 2=DD}

四、size方法和isEmpty方法,values方法

//查看集合中的元素个数,这里的元素是指键值对,一对为一个元素
System.out.println(hashMap.size());
//判断集合是否为空
System.out.println(hashMap.isEmpty());
//输出集合中所有的value值
System.out.println(hashMap.values());
//输出 2 false [HH, DD]

五、循环遍历数组

1.keySet方法

Set<Integer> keySet = hashMap.keySet();
Iterator<Integer> iterator = keySet.iterator();
    while(iterator.hasNext()) {
    Integer key = iterator.next();
    String value = hashMap.get(key);
    System.out.println(key+"="+value);
}
//输出1=HH 2=DD

2.entrySet方法

Set<Entry<Integer,String>> entrySet = hashMap.entrySet();
for (Entry<Integer, String> entry : entrySet) {
    System.out.println(entry.getKey()+"="+entry.getValue());
}
//输出1=HH 2=DD

六、集合常见问题

1、ArrayList和LinkedList有何区别?

ArrayList是基于动态数组的数据结构,LinkedList是基于链表的数据结构;对于随机访问get和set,ArrayList较优,因为LinkedList要移动指针;对于新增和删除操作add和remove,LinkedList较优,因为ArrayList要移动数据。

 

2.HashMap和HashTable区别?

2.1HashMap允许空键值,Hashtable不允许;

2.2HashMap继承AbstractMap,HashTable继承Dictionary类,两者都实现了Map接口;

2.3HashMap的方法不是同步的,Hashtable的方法使同步的

 

3.Iterater和Listlterator之间有什么区别?

3.1Iterater用来遍历Set集合和List集合,而Listlterator只能遍历List;

3.2Iterater只可以向前遍历,而Listlterator可以双向遍历;

3.3Listlterator从Iterator接口继承,然后添加一些额外的功能,比如添加一个元素,替换一个元素,获取前面或后面元素的索引位置;

posted @   花海~  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示