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(){
Setks=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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。