JAVA集合框架Map特性及实例解析
一Map特性:
1Map提供一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value;
2Map中键值对以Entry类型的对象实例形式存在;
3键,即key不可重复,但是value值可以;
4每个键最多只能映射一个值;
5Map接口提供了分别返回key值集合、value值集合以及Entry(键值对)集合的方法;
6Map支持泛型,形式如:Map
二HashMap类:
1HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现;
2HashMap中的Entry对象是无序排列的;
3Key值和Value值都可以为null,但是HashMap中只能有一个Key值为null的映射(key值不可重复);
示例:
packagecom.collection; importjava.util.HashMap; importjava.util.Set; importjava.util.Scanner; publicclassMapTest{ publicHashMapstudents=newHashMap (); /* *新建学生到Map中 **/ publicvoidaddStudent(){ //先添加三个学生 Scannerconsole=newScanner(System.in); inti=0; while(i<3){ System.out.println("请输入学生ID:"); Stringid=console.next(); Students=students.get(id); if(s==null){ System.out.println("请输入学生姓名:"); Stringname=console.next(); Studentstudent=newStudent(Integer.parseInt(id),name); students.put(id,student); System.out.println("添加了学生:"+student.id+"-"+student.name); i++; }else{ System.out.println("该ID已经被占用"); continue; } } } /* *试用HashMap的keySet方法 * *顺便遍历Students **/ publicvoidforEachStudents(){ Set ks=students.keySet(); System.out.println("共有学生数量"+students.size()+"个,具体如下:"); for(Stringkey:ks){ Studentstudent=students.get(key); if(student!=null){ System.out.println("学生ID:"+student.id+"-学生姓名:"+student.name); } } } publicstaticvoidmain(String[]args){ MapTestmt=newMapTest(); mt.addStudent(); mt.forEachStudents(); } }
其中Student类如下:
packagecom.collection; importjava.util.HashSet; importjava.util.Set; publicclassStudent{ publicintid; publicStringname; //set中添加某个对象无论添加多少次,最终只会保留一个该对象(的引用),并且,保留的是第一次添加的那个 publicSetcourse=newHashSet (); publicStudent(intid,Stringname){ this.id=id; this.name=name; } }
返回结果:
请输入学生ID:
请输入学生姓名:
刘备
添加了学生:1-刘备
请输入学生ID:
请输入学生姓名:
关羽
添加了学生:2-关羽
请输入学生ID:
请输入学生姓名:
张飞
添加了学生:3-张飞
共有学生数量3个,具体如下:
学生ID:1-学生姓名:刘备
学生ID:2-学生姓名:关羽
学生ID:3-学生姓名:张飞
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。