一、HashMap的使用
Map 集合名=new HashMap();
HashMap 集合名=new HashMap();
二、HashMap集合常用的方法
put(): 向集合中添加数据,如果说key一致,后面的会覆盖前面的
size(): 获取集合元素的个数
keySet(): 获取所有的key 返回set集合
values(): 获取所有的value,返回的是collection集合
get(key):根据指定的key获取对应的value信息
containsKey(key):查看指定key在集合中是否存在,如果存在返回true
remove(key); 根据key删除指定元素
三、遍历Map集合
/*遍历Map集合
* 1、遍历所有的key,在循环中根据key获取值
* 2、遍历所有的值
* */
//第一种方式 使用增强for
Set dogNames=dogs.keySet();
for (Object name : dogNames) {
//name表示集合中每一个元素的key,通过key获取value
Object obj=dogs.get(name);
if(obj instanceof Dog) {
Dog dog=(Dog)obj;
System.out.println(dog.getName()+"===="+dog.getStrain());
}
}
//第一种方式 迭代器
//获取所有key
Set dogNames1=dogs.keySet();
//创建Set集合(dogNames1)的迭代器
Iterator it= dogNames1.iterator(); //三个key
while(it.hasNext()) {
//获取当前光标的下的一个元素(获取当前key)
Object key=it.next(); //获取的小白
Object obj=dogs.get(key); //根据key获取value
if(obj instanceof Dog) {
Dog dog=(Dog)obj;
System.out.println(dog.getName()+"===="+dog.getStrain());
}
}
//第二种方式 使用增强for
//获取所有的值
Collection c= dogs.values(); //list和set的顶级接口
for (Object obj : c) {
if(obj instanceof Dog) {
Dog dog=(Dog)obj;
System.out.println(dog.getName()+"===="+dog.getStrain());
}
}
四、泛型的Map集合
Map<String, Dog> dogs=new HashMap<String, Dog>();
dogs.put(dog1.getName(), dog1);
dogs.put(dog2.getName(), dog2);
dogs.put(dog3.getName(), dog3);
//根据key获取对象,直接接收,不需要强制类型转换
//Dog dog=dogs.get("小花");
//遍历所有狗够信息
//获取所有key
System.out.println("获取所有key,根据key获取value");
Set<String> dogNames=dogs.keySet();
for (String name : dogNames) {
Dog dog=dogs.get(name);
System.out.println(name+"======="+dog.getStrain());
}
System.out.println("使用Iterator迭代器遍历");
Iterator<String> it=dogs.keySet().iterator();
while(it.hasNext()) {
String key=it.next();
Dog dog=dogs.get(key);
System.out.println(key+"======="+dog.getStrain());
}
//遍历所有的value
System.out.println("遍历所有的value");
Collection<Dog> cDogs= dogs.values();
for (Dog dog : cDogs) {
System.out.println(dog.getName()+"======="+dog.getStrain());
}
备注:定义一个key是int类型的map集合
Map<Integer,Penguin> 集合名=new HashMap<Integer,Penguin>();