JAVA基础 - Map集合
作者:互联网
一、常用API
package com.java.base; /* 目标:认识map体系的特点:按照键无序、不重复、无索引,值不做要求; 一、Map集合体系特点 1、map集合的特点都是由键决定的 2、map集合的键是无序、不重复的,无索引的,值不做要求(可以重复) 3、map集合后面重复的键对应的值会覆盖前面重复键的值 4、map集合的键值对都可以为null 二、map集合实现类特点 1、HashMap:元素按照键是无序、不重复、无索引,值不做要求(与map体系一致) 2、linkedHashMap:元素按照键是有序、不重复、无索引,值不做要求 3、TreeMap:元素按照键是排序、不重复、无索引,值不做要求 * */ import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; public class MapDemo { public static void main(String[] args) { //1、创建一个map集合对象 Map<String,Integer> maps = new HashMap<>(); maps.put("nike",3); maps.put("anta",123); maps.put("nike",300);//会覆盖前面的 maps.put("java",3); maps.put(null,null); System.out.println(maps);//输出结果:{java=3, nike=300, anta=3, null=null} //2、清空集合 //maps.clear(); //System.out.println(maps); //3、判断集合是否为空,为空返回true System.out.println(maps.isEmpty());//集合不为空,故返回false //4、根据键获取对应的值:get System.out.println(maps.get("java"));//输出3 System.out.println(maps.get("斐乐"));//获取不存在的键值,则输出null //5、根据键删除整个元素(删除键会返回键的值) System.out.println(maps.remove("anta")); //6、判断是否包含某个键,包含返回true System.out.println(maps.containsKey("java")); //7、判断是否包含某个值 System.out.println(maps.containsValue(100));//不包含,返回false //8、获取全部键的集合,keyset Set<String> sets = maps.keySet(); System.out.println(sets); //9、获取全部值的集合,Collection values Collection<Integer> values = maps.values(); System.out.println(values); //10、集合的大小 System.out.println(maps.size()); } }
二、Map遍历方式:键找值
package com.java.base; import java.util.HashMap; import java.util.Map; import java.util.Set; public class MapDemo { public static void main(String[] args) { //1、创建一个map集合对象 Map<String,Integer> maps = new HashMap<>(); maps.put("娃娃",30); maps.put("iphoneX",100); maps.put("huawei",1000); maps.put("生活用品",10); maps.put("手表",10); System.out.println(maps);//输出结果:{huawei=1000, 手表=10, 生活用品=10, iphoneX=100, 娃娃=30} //2、键找值:第一步,先拿到集合的全部键 Set<String> sets = maps.keySet();//maps.keySet() 此处快捷键alt+回车,选第二个 //3、第二步,遍历每个键,根据键提取值 //sets.for 回车 ,便快捷输出foreach语句 for (String set : sets) { int value = maps.get(set);//获取键的值 //输出结果:huawei======>1000 //手表======>10 //生活用品======>10 //iphoneX======>100 //娃娃======>30 System.out.println(set +"======>"+value); } } }
三、案例
package com.java.base; /* 需求:统计投票人数 某个班级80名学生,现在需要组成秋游活动,班长提供了四个景点依次是(ABCD),每个学生只能选择一个景点,请统计出最终哪个景点想去的人数最多 分析: 1、将80个学生选择的数据拿到程序中去 2、定义map集合用于存储最终统计的结果 3、遍历80个学生选择的数据,看map集合中是否存在,不存在存入“数据=1”,存在则其对应值+1 */ import java.util.HashMap; import java.util.Map; import java.util.Random; public class MapDemo { public static void main(String[] args) { //1、把80个学生选择的数据拿进来 String [] selects = {"A","B","C","D"}; StringBuilder sb = new StringBuilder(); Random r = new Random(); for (int i = 0; i < 80; i++) { //BDCABDCCCCDACCCCBABABBCBAAADDCBBDCADDDCBDBDCDDAAACACACCABBDDAACBCBCACBBDAACDBADB 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、提取当前选择景点字符 char ch = sb.charAt(i); //5、判断map集合中是否存在这个键 if(infos.containsKey(ch)){ //让其值+1 infos.put(ch,infos.get(ch)+1); }else { //说明此景点是第一次被选 infos.put(ch,1); } } //4、输出集合:{A=20, B=19, C=23, D=18} System.out.println(infos); } }
标签:Map,JAVA,maps,System,println,map,集合,java,out 来源: https://www.cnblogs.com/Chilam007/p/15851062.html