目录

1.Map

2.案例

案例一

案例二

案例三


1.Map

1. Map
  1.1 特点:无序、以键值对的形式添加元素,键不能重复,值可以重复
           它没有继承Collection接口
  1.2 遍历
    1.2.1 先取出保存所有键的Set,再遍历Set即可(2种)
    1.2.2 先取出保存所有Entry的Set,再遍历此Set即可 (重要点)

2.HashMap与HashTable之间的区别
  同步既排队  线程安全的     hashtable  键不可以为null,值也不能为null
  异步        非安全的   hashmap  键可以为null,值也可以为null

2.案例

案例一

Demo01.java

package Ktdm;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;public class Demo01 {@SuppressWarnings("unlikely-arg-type")public static void main(String[] args) {//map集合的特点 无序,键值对,键不可以重复,值可以重复Map<String, Object> map=new HashMap<String, Object>();map.put("阿危", 250);map.put("果果", 520);map.put("菜菜", 521);//map集合的遍历方式    1.获取map集合中的所有key的set集合,再通过key获取value值Set<String> ks = map.keySet();for (String s : ks) {
//          System.out.println(s);//通过键获取对应的值Object value = map.get(s);System.out.println(s+"="+value);}//这一条数据把上一条覆盖了map.put("菜菜", 5211);map.put("果果", 521);System.out.println("----------------------");//        Collection<Object> values = map.values();
//      for (Object o : values) {
//          System.out.println(o);
//
//      }for (String s : ks) {
//          System.out.println(s);//通过键获取对应的值Object value = map.get(s);System.out.println(s+"="+value);}System.out.println("----------------------");//map遍历方式  2.先取出保存所有键值对Entry的Set,再遍历此Set即可Set<Entry<String, Object>> entrySet = map.entrySet();for (Entry<String, Object> entry : entrySet) {System.out.println(entry);System.out.println(entry.getKey());System.out.println(entry.getValue());}}}

效果图:

案例二

Demo02.java

package Ktdm;import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;public class Demo02 {public static void main(String[] args) {//map集合的特点 无序,键值对,键不可以重复,值可以重复Map<String, Object> map=new HashMap<String, Object>();Map<String, Object> map1=new Hashtable<String, Object>();//hashMap能以null为键,以null为值map.put("阿危", 250);map.put("果果", 520);map.put("菜菜", 521);map.put(null, "lx");//hashtable不能以null为键,不能以null为值
//      map1.put("阿危", null);
//      map1.put("果果", 520);
//      map1.put("菜菜", 521);
//      map1.put(null, "lx");Set<Entry<String, Object>> entrySet = map.entrySet();for (Entry<String, Object> entry : entrySet) {System.out.println(entry);}}}

效果图:

案例三

Student.java

public class Student implements Serializable{/*** */private static final long serialVersionUID = 4682477983251791848L;private String name;private Integer source;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getSource() {return source;}public void setSource(Integer source) {this.source = source;}public Student() {// TODO Auto-generated constructor stub}@Overridepublic String toString() {return "Student [name=" + name + ", source=" + source + "]";}public Student(String name, Integer source) {super();this.name = name;this.source = source;}
}

Demo03.java


public static void main(String[] args) {Map<String, Map<String,List<Student>>> map = new HashMap<String, Map<String,List<Student>>>();//====================================================================List<Student> als = new ArrayList<Student>();als.add(new Student("张晓东",90));als.add(new Student("张晓西",75));List<Student> bls = new ArrayList<Student>();bls.add(new Student("张晓北",80));bls.add(new Student("张晓南",82));Map<String, List<Student>> amap = new HashMap<String, List<Student>>();amap.put("T110", als);amap.put("T111", bls);//====================================================================List<Student> cls = new ArrayList<Student>();cls.add(new Student("张三",90));cls.add(new Student("李四",100));List<Student> dls = new ArrayList<Student>();dls.add(new Student("王五",70));dls.add(new Student("小六",100));List<Student> els = new ArrayList<Student>();els.add(new Student("小八",70));els.add(new Student("小九",100));Map<String, List<Student>> bmap = new HashMap<String, List<Student>>();bmap.put("T206", cls);bmap.put("T222", dls);bmap.put("T208", els);//====================================================================List<Student> fls = new ArrayList<Student>();fls.add(new Student("可乐",60));fls.add(new Student("雪碧",50));List<Student> gls = new ArrayList<Student>();gls.add(new Student("哇哈哈",90));gls.add(new Student("老干妈",80));Map<String, List<Student>> cmap = new HashMap<String, List<Student>>();cmap.put("T230", fls);cmap.put("T231", gls);map.put("卓京初中部",amap);map.put("卓京高中部",bmap);map.put("卓京大学部",cmap);Set<String> keySet = map.keySet();for (String key : keySet) {Map<String, List<Student>> value = map.get(key);System.out.println(key);Set<String> keySet2 = value.keySet();for (String key2 : keySet2) {System.out.println("\t"+key2);List<Student> ls = value.get(key2);for (Student stu : ls) {System.out.println("\t\t"+stu.getName()+"  "+stu.getSource());}}}

集合框架(Collection)——Map和例题相关推荐

  1. Java Review - 集合框架=Collection+Map

    文章目录 概述 容器 = Collection + Map Collection Set TreeSet HashSet LinkedHashSet List ArrayList Vector Lin ...

  2. java集合课程,I学霸官方免费课程三十三:Java集合框架之Map集合

    I学霸官方免费教程三十三:Java集合框架之Map集合 Map接口 Map集合采用键值对(key-value)的方式存储数据,其中键不可以重复.值可以重复. 常用类有HashMap.TreeMap和P ...

  3. 第19章 集合框架(3)-Map接口

    第19章 集合框架(3)-Map接口 1.Map接口概述 Map是一种映射关系,那么什么是映射关系呢? 映射的数学解释 设A,B是两个非空集合,如果存在一个法则,使得对A中的每一个元素a,按法则f,在 ...

  4. Java 集合框架 : Collection、Map

    1. Collection接口是Java集合框架的基本接口,所所有集合都继承该接口. 1.1 方法 : public interface Collection<E> extends Ite ...

  5. 集合框架Collection、Map查找表(Java SE第三阶段9)

    目录 Collection List和Set 集合方法 集合持有对象的引用 集合间操作方法 Iterator迭代器 增强型for循环 泛型机制 List List(ArrayList和LinkedLi ...

  6. Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  7. Java集合查找Map,Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  8. JAVA基础第四章-集合框架Collection篇

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  9. D - JDK17源码阅读 - 集合框架 - Collection<E> 接口 - 集合框架核心接口

    提前 关于抽象的描述并不完全代表具体的实现,但是具体实现不会脱离抽象描述 关于这个接口,官方给的描述太多太多,不用看的太仔细,随意看看就好 集合层次结构中的根接口. 一个集合代表一组对象,称为它的元素 ...

最新文章

  1. LeetCode简单题之解码字母到整数映射
  2. 开发日记-20190405
  3. csrutil是什么_经常在程序里见到 Util ,想知道它一般是指什么意思?
  4. 【Notes8】Linux开发环境,Linux命令,vi命令,/正则,Hash,iNode,文件查找与读取,Linux开机自启动
  5. mysql优化学习笔记
  6. java8 streams_Java 8 Streams API:对流进行分组和分区
  7. VMware Workstation 网络设置解释三种
  8. 都是程序员,凭什么他工资比我高,下班比我早?
  9. Linux创建与删除用户
  10. Pandas速查手册中文版API
  11. 多因素cox回归结果解释 第二十八讲 R语言-Cox比例风险模型1 - 知乎 (zhihu.com)
  12. linux安装project lemon测评机
  13. scp 远程拷贝文件
  14. debian 9 配置ati驱动
  15. jmeter安装成功后打不开,提示:Cause: CannotResolveClassException: com.blazemeter.jmeter.threads.concurrency.Conc
  16. 猜数字游戏(C语言生成随机数)
  17. 基于Python的企业编码生成系统
  18. 特斯拉、蔚来、小鹏三款主流智能驾驶产品测评
  19. 计算机网络一本通电子书,2019年全国计算机等级考试一本通 三级网络技术
  20. 亚马逊云科技-游戏孵化营第二课

热门文章

  1. HTML中使背景图片自适应浏览器大小
  2. 字节 找出最近时间(回溯) C++ 2021-07-17
  3. vue--子传父、父传子
  4. vue.runtime.esm.js?2b0e:619 [Vue warn]: Duplicate keys detected: ‘xxx‘. This may cause an update err
  5. 音视频入门系列-服务器篇(nginx-rtmp 的部署)
  6. Phalanx HDU 【2859】
  7. FVCOM离线拉格朗日配置
  8. 港科百创|【未磁科技】勇夺百万大奖,2021年度总决赛圆满收官!香港科大-越秀集团百万奖金国际创业大赛年度总决赛成功举办!...
  9. 大数据时代下对马克思主义的一些探讨
  10. chinacache解决方案——静态内容加速