Map 接口
存储一组成对的 键(key)------- 值(value)对象,提供key 到value 的映射,通过key 来检索。
特点: key 不要求有序,不允许重复。value 不要求有序但允许重复
常用方法:
Object put(Object key,Object value) :将相互关联的 key--value 放入集合,如果map 接口中包含了key对应的value 则旧值被替换
Object remove(Object key) : 从当前集合中删除与指定key 相关的映射,并返回该key 关联的旧value,没关返回null
Object get(Object key) : 获得与key 相关的value,如果key 不关联人和非null 的值,则返回null
boolean containsKey(Object key) 判断集合中是否存在key
boolean containsValue(Object Value) : 判断集合中是否存在value
boolean isEmpty() : 判断集合中是否存在元素
void clear() : 清除集合中所有元素
int size(): 返回集合中元素数量
Set keySet() :获取所有key 的集合
Collection values() : 获取所有value 集合
HashMap 类
数据添加到HashMap 集合后,所有的数据类型将转换为Object 类型,取出的时候注意强转
HashMap类不保证映射的顺序,特别是不保证顺序恒久不变
package com.obge.contr; import java.util.HashMap; import java.util.Map; import com.stu.contr.Dog; public class MapStu { public static void main(String[] args) { Dog dog1 = new Dog("小白",10); Dog dog2 = new Dog("大黄",11); //创建保存键 - 值对 的集合对象 向上转型 Map mapDog = new HashMap(); //使用put 方法按照键 -- 值的方式存储 均是object 类型,放入其他类型的会自动转换为object mapDog.put(1001, dog1); mapDog.put(1002, dog2); //输出存放了有多少个 System.out.println("存了"+mapDog.size()); //输出 键集 System.out.println("键来:"+mapDog.keySet()); //值来 System.out.println(mapDog.values()); //根据键获取值 if(mapDog.containsKey(1001)) { //根据键值获取 对应的值对象 Dog dog = (Dog)mapDog.get(1001); System.out.println("键名为1001的对应的名字为:"+dog.getName() ); } int key = 1002; if(mapDog.containsKey(key)) { //根据键值获取 对应的值对象 Dog dog = (Dog)mapDog.get(key); System.out.println("键名为"+key+"的对应的名字为:"+dog.getName() ); } //判断值是否存在 System.out.println("dog2 是否存在:"+mapDog.containsValue(dog2)); } }