Map(字典)
Map
作用:存储一组数据类型相同的数据;
特点:按照键值对的形式存储;
名词:
键(Key):类似于标记
值(Value):
键值对(K V):一个键对应一个值;
要求:
键(key)不允许重复,值(Value)可以重复
Map体系结构:
HashMap:
特点:key不能重复,允许null作为键或值,线程不安全,jdk1.2出现.
HashTable:
特点:key不能重复,不允许null作为键或值,线程安全,jdk1.0出现.
(了解)Properties:HashTable的子类;
TreeMap:
特点:
键要么
注意:
Map的底层是Set实现的
Set的底层是Map实现的
Map提供的方法
增:
V put(K key, V value);将键值对存储到字典中;
void putAll(Map<? extends K, ? extends V> m);将字典添加进去(添加多个);
删:
V remove(Object key);删除key对应的键值对.返回值:删除键值对中的值
void clear();清空
改:
V put(K key, V value);添加的方法
如果字典中不存在该key,就是添加
如果字典中存在该key,就是添加
查:
int size():查询字典长度;
boolean isEmpty();判断字段是否为空
boolean containsKey(Object key);判断键是否存在
boolean containsValue(Object value);判断值是否存在
V get(Object key);获取key对应的Value值
Set<K> keySet();获取所有Key的集合
Collection<V> values();获获取所有值的集合
Set<Map.Entry<K, V>> entrySet();//获取键值对的集合
Entry:键值对
K getKey();获取键值对的键
V getValue();获取键值对的值
V setValue(V value);给键值对修改值
Properties特有方法
properties的方法
void store(OutputStream out , String comments)
作用:将字典中的数据存储到文件中
作用:
out:输出流,表示数据存储位置
comments:提交信息
注意:
输出流
void load(InputStream inStream)
作用:加载文件时,文件中的数据导入到字典中
参数:
输入流,表示文件读取的文件地址
注意:
输入流
String getProperty(String key)
作用:通过key获取字典中存储的值value,类似Map的get方法
优点:
getProperty的返回值是String类型的,get方法返回值是泛型,但是properties并没有定义泛型,所以返回值为Object时,需要手动转换为String
String getProperty(String key, String defaultValue)
作用:通过key获取对应的value
参数:
key:键
defualtValue:默认值
注意
如果在取值时,字典中不存在key,则返回默认值,如果存在key,就返回key对应的value