一、
//map的普通操作
@Test
public void mapTest(){
Map map=new HashMap();
//添加数据
map.put(1, "demo1");
map.put(2, 22222);
//遍历
for(Object key:map.keySet()){
Object value=map.get(key);
System.out.println(key+" "+value);
}
//删除map中的数据
map.remove(2);
}
@Test
//存储方便有索引的,key和value类型时不固定的
public void mapTest2(){
//添加数据,对对象的操作
Map userMap=new HashMap();
userMap.put(1,new User(1,"hello"));
userMap.put(2,new User(2,"shijie"));
userMap.put(3,new User(2,"json"));
User user= (User) userMap.get(1);//转换成user对象
System.out.println(user.getName());
//对Map进行遍历,使用instanceof来判断value的数据类型是不是user的实例,不考虑泛型
//若是user的实例转换成user对象,若不是则输出value;keyset获取键
for(Object key:userMap.keySet()){
Object value=userMap.get(key);
if(value instanceof User){
User u= (User) value;
System.out.println(u.getName());
}else {
System.out.println(value);
}
}
//Map遍历考虑指定的泛型
Map<Integer,User> userMap2=new HashMap<>();
userMap2.put(1,new User(1,"test111"));
userMap2.put(1,new User(1,"test222"));
System.out.println(userMap2.get(1).getName());
//entry键值对entrySet每对的集合
// for(Map.Entry<Integer,User> entry:userMap2.entrySet()){
// System.out.println(entry.getKey()+" "+entry.getValue().getName());
// }
for (Integer key : userMap2.keySet()) {
User value = userMap2.get(key);
System.out.println(key+" "+value.getName());
}
}