Map集合的概述与特点,常用API及特有的三种遍历方式总结,带应用
一、概述
Map集合是一种双列集合。由两部分组成。
键和值。称为键值对。
Map集合分为:
示例:
//1.创建一个Map集合对象 Map <String , Integer> maps = new HashMap<>();//一行经典代码 maps.put("鸿星尔克",3); maps.put("Java",1); maps.put("枸杞",100); maps.put("Java",100);//覆盖前面的数据 maps.put(null,null); System.out.println(maps);
Map集合特点
二、常用API
1、先创建集合,添加元素
Map<String , Integer> maps = new HashMap<>();maps.put("iPhoneX",10);maps.put("娃娃",31);maps.put("iPhoneX",100);//Map集合后面重复的键对应的元素会覆盖前面重复的整个元素maps.put("HUAWEI",1000);maps.put("生活用品",10);maps.put("手表",10);
2、清空集合4、根据键获取对应值:public V get(Object key)
map.clear(maps);
3、判断集合是否为空,为空就返回true,反之false
System.out.println(maps.isEmpty());
4、根据键获取对应值:public V get(Object key)
Integer key = maps.get("HUAWEI");System.out.println(key);//1000System.out.println(maps.get("生活用品"));//10System.out.println(maps.get("生活用品2"));//null
5.根据键删除整个元素(删除键会返回键的值)
System.out.println(maps.remove("iPhoneX"));System.out.println(maps);
6.判断是否包含某个键,包含返回true,反之!
Set<String> keys = maps.keySet();System.out.println(keys);
System.out.println(maps.containsKey("娃娃"));//trueSystem.out.println(maps.containsKey("娃娃2"));//falseSystem.out.println(maps.containsKey("iPhone X2"));//false
7、判断是否包含某个值
System.out.println(maps.containsValue(100));System.out.println(maps.containsValue(10));System.out.println(maps.containsValue(22));
8.获取全部键的集合:public Set<K> keySet()
Set<String> keys = maps.keySet();System.out.println(keys);
9.获取全部值的集合:Collection<V> values()
这时我们使用Collection来接数据,是因为值是可以重复的,不能用Set(去重复)
Collection<Integer> values = maps.values();//使用Collection来接数据,是因为值是可以重复的,不能用Set(去重复)System.out.println(values);
10、集合的大小
System.out.println(maps.size());//4
11.合并其他Map集合(拓展)
Map<String , Integer> map1 = new HashMap<>();map1.put("java",1);map1.put("java2",100);Map<String , Integer> map2 = new HashMap<>();map2.put("java2",1);map2.put("java3",100);map1.putAll(map2);//把集合map2 的元素拷贝一份到map1 中去System.out.println(map1);System.out.println(map2);
12、一些方便的快捷键
//map1.entrySet(); ctrl + alt + V键 // Set<Map.Entry<String, Integer>> entries = map1.entrySet();//map1.keySet(); alt + 回车 // Set<String> keys = map1.keySet();
三、三种特有的遍历方式
首先:我们要创建一个集合
Map<String , Integer> maps = new HashMap<>(); maps.put("娃娃",31); maps.put("iPhoneX",100);//Map集合后面重复的键对应的元素会覆盖前面重复的整个元素 maps.put("HUAWEI",1000); maps.put("生活用品",10); maps.put("手表",10); System.out.println(maps);
第一种遍历方法(键找值):
第一步:先拿到集合的全部键
第二步:遍历每个键,根据键提取值
Set<String> keys = maps.keySet();for (String key : keys) {int value = maps.get(key);System.out.println(key + "===>" +value);}
第二种遍历方法:
(键值对)把Map集合转换成Set集合,在用foreach遍历
Set<Map.Entry<String , Integer>> entries = maps.entrySet();//开始遍历for(Map.Entry<String , Integer> entry : entries){String key = entry.getKey();int value = entry.getValue();System.out.println(key + "===>" +value);}
第三种遍历方法:
Lambda表达式,简化代码
简化前
maps.forEach(new BiConsumer<String, Integer>() {@Overridepublic void accept(String k, Integer v) {System.out.println(k + "--->" + v);} });
简化后:
maps.forEach((k,v)-> System.out.println(k + "===>" + v));
四、应用,案例
案例:统计投票人数
1.把8 个学生选择的数据拿过来
String[] selects = {"A","B","C","D"};StringBuilder sb = new StringBuilder();Random r = new Random();for (int i = 0; i < 80; i++) {sb.append(selects[r.nextInt(selects.length)]);}System.out.println(sb);
2.定义一个Map集合的记录最终统计的结果:A=30,B=20,C=20,D=10
Map<Character , Integer> infos = new HashMap<>();
3.遍历80个学生选择的数据
之后再进行判断
for (int i = 0; i < sb.length(); i++) {//4.提取M当前选择景点字符char ch = sb.charAt(i);//5.判断Map集合中是否存在这个键if(infos.containsKey(ch)){//让其值 +1infos.put(ch,infos.get(ch)+1);}else{//说明此景点是第一次被选infos.put(ch,1);}}
4.总体代码演示:
String[] selects = {"A","B","C","D"};StringBuilder sb = new StringBuilder();Random r = new Random();for (int i = 0; i < 80; i++) {sb.append(selects[r.nextInt(selects.length)]);}System.out.println(sb);Map<Character , Integer> infos = new HashMap<>();for (int i = 0; i < sb.length(); i++) {//4.提取M当前选择景点字符char ch = sb.charAt(i);//5.判断Map集合中是否存在这个键if(infos.containsKey(ch)){//让其值 +1infos.put(ch,infos.get(ch)+1);}else{//说明此景点是第一次被选infos.put(ch,1);}}
Map集合的概述与特点,常用API及特有的三种遍历方式总结,带应用相关推荐
- java中map的遍历方法_Java中Map的三种遍历方式
集合中的三种遍历方式,如下代码: import java.util.Collection; import java.util.HashMap; import java.util.Iterator; i ...
- Java中List集合的三种遍历方式(全网最详)
Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...
- Java基础知识 21(Set集合,HashSet集合以及它的三种遍历方式(迭代器,增强for循环,forEach),LinkedHashSet集合,TreeSet集合(自然排序法,比较器排序法))
Java基础知识 21 Set集合 Set集合:一个不包含重复元素的Collection集合,元素不重复,List集合是允许元素重复的. Set接口的三个字类:HashSet(),LinkedHash ...
- Java中Map集合的三种遍历方式
文章目录 Map集合的遍历方式 Map集合的遍历方式一: 键找值 Map集合的遍历方式二: 键值对 Map集合的遍历方式三: Lambda Map集合的遍历方式 Map集合的遍历方式有3种: 方式一: ...
- Java Collection集合的三种遍历方式
文章目录 Collection遍历方式 迭代器遍历 foreach遍历 Lambda遍历 Collection遍历方式 Collection集合遍历的方式有三种: 迭代器 foreach/增强for循 ...
- java集合 HashMap的三种遍历方式
前言: HashMap的集合中的比重是无可厚非的,由自身的数组+链表/红黑树构成的(JDK 1.8),这样使得HashMap优点表现出来: 数组查询效率快: 链表的插入和删除效率也加快 但是HashM ...
- java集合之——List的三种遍历方式
一.使用 iterator(迭代器)遍历 1) java iterrator用于遍历集合,本身并不存放对象. 2)迭代器iterator的基本操作: iterator.hasNext():判断集合中是 ...
- Java中Map的三种遍历方式:keySet、 entrySet、forEach
前言 最近在看<阿里巴巴Java开发手册(华山版)>,看到了关于Map的遍历方式,手册上写的很详细,我这里用代码再来展示一遍. 代码 public static void main(Str ...
- java中map的三种遍历方式,return的时机,佛祖打印
Map<String, Object> map = new HashMap<>();map.put("id","dad");map.pu ...
最新文章
- OPENGFILER存储柜
- ​causal-learn:基于Python的因果发现算法平台
- jieba(结巴)常用方法
- Hadoop与Alpach Spark的区别
- 《王者荣耀》技术总监复盘回炉历程:没跨过这三座大山,就是另一款MOBA霸占市场了...
- 面向对象第七章,内存的管理,面向对象三大特征封装、继承、多态
- 实战SQL Server 2005镜像配置全过程
- 我的mongoose代码备份
- asp.net网页中导出EXCEL,WORD的环境设置验证实例
- C++之指针探究(三):指针数组和数组指针
- APP扫码登录WEB系统
- 2022年国产操作系统发展现状
- jQuery 已经落幕了~
- 华为 eNSP 打开警告:请将eNSP相关应用程序添加到windows firewall的允许程序列表,并允许其在公用网络上运行!
- centos环境更换IP地址为静态并且正常联网
- 工业设计软件主要代表
- 目前最受欢迎的12个Python开源框架,你用过几个?
- 通过思维导图学习知识的两种模板鉴赏
- Android:展锐battery
- 自然数e这家伙怎么蹦跶出来的?