Map是“关键帧-值对”(key-value )集合,其中每个Map集合元素都包含关键帧对象和值对象。 其中,关键对象不允许重复,但值对象可以重复。 此外,值对象也可以是映射类型,就像数组中的元素是数组一样。
Map接口主要有两个实现类: HashMap类和TreeMap类。 其中,HashMap类通过散列算法访问关键对象,TreeMap类可以对关键对象进行排序。
Map接口提供的常用方法如表1所示。
表1 Map接口的常用方法
方法名称
说明
vget (对象密钥) )。
返回与Map集合中指定关键对象相对应的值。 v表示值的数据类型
vput(kkey,V value ) )。
将键值对添加到Map集合中,并返回key之前的对应value。 如果不存在,则返回null
v remove (对象密钥) )。
从Map集合中删除与key对应的键-值对,并返回与key对应的value。 如果不存在,则返回null
Set entrySet () )
Set集合,返回Map集合中的所有键-值对。 此Set集合中元素的数据类型为Map.Entry
设置密钥集() )
返回Map集合中所有关键对象的集合
例1
每个学生都有自己独特的号码,即学号。 毕业时需要从系统中删除那个学生的信息。
创建以下Java程序,并使用HashMap保存学生信息: 关键是学生的学号,值是名字。 毕业时,用户必须输入学生的学校号码,根据学校号码进行删除操作。 具体实现代码如下:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
公共类测试09
{
publicstaticvoidmain (字符串[ ] args ) )。
{
HashMap users=new HashMap (;
USERS.put(11,惠普DPD ); //将学生信息键值对保存在Map中
USERS.put(22,sdbg );
USERS.put('33 )、' cqdxss );
USERS.put('44 ),'任性的朋友);
USERS.put('55,'友好的心情);
(system.out.println('******学生列表*********** ' () ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。
Iterator it=users.keySet ().iterator );
wile(it.Hasnext ) )
{
遍历//映射
Object key=it.next (;
objectval=users.get(key );
System.out.println ('学号: ' key ',姓名:' val );
}
扫描输入=new扫描程序(system.in );
System.out.println ('请输入要删除的学校编号:');
int num=input.nextInt (;
if (users.contains key (string.value of ) num ) )
//判断是否含有指定键
USERS.remove(string.valueof ) num ); //如果包含的话就删除
}
else
{
System.out.println ('此学生不存在!' );
}
(system.out.println('******学生列表*********** ' () ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。
it=users.keySet ().iterator );
wile(it.Hasnext ) )
{
Object key=it.next (;
objectval=users.get(key );
System.out.println (学校号码: ' key ),名字: ' val );
}
}
}
此程序使用while循环两次遍历HashMap集合。 当一个学生毕业时,用户必须输入该学生的学校号,并根据学校号使用HashMap类的remove )方法删除相应的元素。 程序的执行结果如下。
********学生名单********
学号: 44,名字:任性的朋友
学号: 55、姓名:友好之情
学号: 22、姓名:sdbg
学号: 33、姓名:cqdxss
学校编号: 11、姓名:惠普DPD
请输入要删除的学校编号:
22
********学生名单********
学号: 44,名字:任性的朋友
学号: 55,名字:友好之情
学校编号: 33,姓名: cqdxss
学校编号: 11,姓名:惠普DPD
********学生名单********
学号: 44,名字:任性的朋友
学号: 55、姓名:友好之情
学号: 22、姓名:sdbg
学号: 33、姓名:cqdxss
学校编号: 11、姓名:惠普DPD
请输入要删除的学校编号:
44
********学生名单********
学号: 55,名字:友好之情
学校编号: 22,姓名: sdbg
学校编号: 33,姓名: cqdxss
学校编号: 11,姓名:惠普DPD
注意: TreeMap类的用法与HashMap类相同,唯一的区别是TreeMap类可以对关键对象进行排序。 这里不说明。