import java.util.*;
public class MyMapDemo{
public static void main(String[] args){
Map<String,String> map=new HashMap<String,String>();//[键-值]对里面可以放置的的类型为Object
map.put("用户名称","张三丰");
map.put("密码","000000");
map.put("学号","123456"); //编译自动将值类型转换成对应的包装类型Integer:这种行为称为装箱操作
map.put("婚否","false"); //编译自动将值类型转换成对应的包装类型Booblean:这种行为称为装箱操作
Object o=map.get("学号"); //取到的值的类型是Object,当然也可以转换成任何类型
if(o instanceof Integer){
Integer i=(Integer)o; //这里转换成的就是实际的子类型
int id=i; //可以被编译器自动转换int id=i.intValue();即调用子类型对象的方法,这种行为被称作拆箱操作
}
o=map.get("婚否"); //取到的值也是Object,同上
if(o instanceof Boolean){
Boolean b=(Boolean)o;
boolean status=b
}
//访问所有键-值对
//下面是使用Set接口访问
Set<String> keySet=map.keySet(); //获取Map对象的所有键集
Iterator<String> it=keySet.iterator();
while(it.hasNext()){
String key=it.next(); //取到下一个键对象
String value=map.get(key); //再根据键对象取到关联的值对象
System.out.println(key+"的值为"+value);//打印出来键的值
}
//下面是使用Entry接口访问
Set<Map.Entry<String,String>> entrySet=map.entrySet();//获取Map对象的所有的键值对
Iterator<Map.Entry<String,String>> its=entrySet.iterator();
while(its.hasNext()){
Map.Entry<String,String> entry=its.next(); //转换成Map.Entry类型的对象
String key=entry.getKey(); //调用Map.Entry类型的对象的取键值
String value=entry.getValue(); //调用Map.Entry类型的对象的取值方法
System.out.println(key+"的值为"+value); //打印出来键的值
}
//如何只获取关联的值集
Collection c=map.values();
// for( it=c.iterator();it.hasNext();){
// Object value=it.next();
// System.out.println(value);
// }
// System.out.println();
for(Object ob:c){
System.out.println(ob);
}
//如果提供一个不存在的键,则取到的就是空
o=map.get("用户名");
if(null==o){
System.out.println("不存在用户名这个键值条目");
}
//注:如果在加入的时候,提供了相同的键,则后提供的键-值将冲掉原来的键值条目
map.put("学号","54321");
System.out.println(map);
//如何判断在集合石否存在某个键或者某个值
if(!map.containsKey("用户名")){
System.out.println("不存在用户名这个键值条目");
}
}
}
集合类Map的用法
最新推荐文章于 2022-01-01 21:54:22 发布