当前位置: 首页 > news >正文

Java -- HashSet的全面说明-Map接口的常用方法-遍历方法

目录

1. HashSet的全面说明

2. Map接口实现类的特点

注意:讲的是JDK8的Map接口特点

3. Map接口的常用方法

4. Map遍历方法


1. HashSet的全面说明

1. HashSet实现了Set接口

2. HashSet实际上是HashMap

3. 可以存放null值,但是只能有一个null

4. HashSet不保证元素是有序的,取决于hash后,再确定索引的结果

5. 不能保证重复元素/对象,在前面Set接口使用已经讲过


2. Map接口实现类的特点

注意:讲的是JDK8的Map接口特点

1. Map与Collection并列存在,用于保存具有映射关系的数据:k-v

2. Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中

3. Map中的key不允许重复,原因和HashSet一样

4. Map的key可以是null,value也可以为null,注意key为null,只能有一个(key不能重复),value为null,可以多个。

5. Map中的value可以重复

6. 常用String类作为Map的key

7. key和value之间存在单向一对一关系,通过指定的key总能找到对应的value

8. Map存放数据的key-value示意图,一对一k-v是放在一个Node中的,有因为Node实现了Entry接口,有些书上也说 一对k-v就是一个Entry


3. Map接口的常用方法

1. put:添加 

2. remove:根据键删除映射关系

3. get:根据键获取值

4. size:获取元素个数

5. isEmpty:判断个数是否为0

6. clear: 清除

7. containsKey: 查找键是否存在

// map的常用方法Map map = new HashMap();map.put("邓超",new Book("",100));map.put("邓超","孙俪");map.put("邓超","孙俪");map.put("王宝强","马蓉");map.put("六",null);map.put(null,"刘亦菲");System.out.println("map="+map);// remove 根据键删除映射关系map.remove(null);System.out.println("map="+map);// get:根据键获取值Object o = map.get("六");System.out.println("val="+o);//size :获取元素个数System.out.println("k-v="+map.size());// isEmpty:判断个数是否为0System.out.println(map.isEmpty());//clear:清除k-vmap.clear();System.out.println("map="+map);//containsKey:查找键是否存在System.out.println(map.containsKey("王宝强"));

4. Map遍历方法

 Map map = new HashMap();map.put("邓超", new Book("", 100));map.put("邓超", "孙俪");map.put("邓超", "孙俪");map.put("王宝强", "马蓉");map.put("六", null);map.put(null, "刘亦菲");// 第一组:先取出 所有的Key,通过Key取出对应的ValueSet keySet = map.keySet();// 增强forSystem.out.println("=====第一种=====");for (Object key : keySet) {System.out.println(key + "-" + map.get(key));}// 2. 迭代器Iterator iterator = keySet.iterator();while (iterator.hasNext()) {Object key = iterator.next();System.out.println(key + "-" + map.get(key));//第二组:把所有的values取出Collection values = map.values();//可以使用所有Collection使用的所有遍历方法// 增强forSystem.out.println("====取出所有的values for===");for (Object value : values) {System.out.println(value);}// 迭代器System.out.println("====取出所有的values 迭代器===");Iterator iterator1 = values.iterator();while (iterator1.hasNext()) {Object value = iterator1.next();System.out.println(value);}// 第三组 通过EntrySet来获取 k-vSet entrySet = map.entrySet();// 增强forSystem.out.println("====取出所有的values for 第三种方式===");for (Object entry :entrySet) {// 将entry转成Map.EntryMap.Entry m = (Map.Entry) entry;System.out.println(m.getKey()+"-"+m.getValue());}//迭代器System.out.println("====取出所有的values 迭代器 第四种方式===");Iterator iterator2 = entrySet.iterator();while (iterator2.hasNext()) {Object entry =  iterator2.next();//System.out.println(next.getClass());// hashmapnode -- 实现了 map.entryMap.Entry m =(Map.Entry) entry;System.out.println(m.getKey()+"-"+m.getValue());

http://www.dtcms.com/a/331505.html

相关文章:

  • feed-forward系列工作集合与跟进(vggt以后)
  • 第二十三天:求逆序对
  • Day54 Java面向对象08 继承
  • 附:日期类Date的实现
  • Pytorch在FSDP模型中使用EMA
  • Leetcode_1780.判断一个数字是否可以表示成三的幂的和
  • UE5 C++ 删除文件
  • BotCash:GPT-5发布观察 工程优化的进步,还是技术突破的瓶颈?
  • Spring Boot + Redis Cluster 测试
  • 回流(Reflow)与重绘(Repaint):浏览器渲染性能优化核心
  • 演员念真主演《镇恶追凶》辽宁杀青
  • 数字电路上的通讯速度是越快越好还是越慢越好?
  • 【二分图】染色问题
  • 企业智脑UMI AIGC SaaS:解锁AI时代全场景生产力,中小微企业转型利器
  • Linux学习-多任务(进程)
  • **隐私沙盒:发散创新之光**随着互联网技术的飞速发展,数据安全和隐私保护逐渐成为人们关注的焦点。隐私沙盒作为一种新兴
  • Ping32 与绿盾再对比:Ping32 以创新与适配领跑数据安全​
  • 机器学习内容总结
  • 机器学习-基础入门:从概念到核心方法论
  • MySQL进阶——优化、日志
  • 第4节课:多模态大模型的核心能力(多模态大模型基础教程)
  • 疏老师-python训练营-Day45Tensorboard使用介绍
  • StarRocks优化统计分析
  • 好用的开源数据可视化设计工具LIGHT CHASER
  • Java List 集合详解(ArrayList、LinkedList、Vector)
  • pyecharts可视化图表-pie:从入门到精通
  • 适用工业分选和工业应用的高光谱相机有哪些?什么品牌比较好?
  • 这个就是哈希冲突
  • AI出题人给出的Java后端面经(十四)(日更)
  • 智慧养老解决方案:破解“最后一公里”服务难题