Map:地图,映射关系(代表)
1. Interface:Map
特点:
a. 用于存储任意键值对(Key-Value);
b. 键:无序、无下标、不允许重复(唯一性);
c. 值:无序、无下标、允许重复。
方法:
1) containsKey(Object key)、containsValue(Object value)
2)V put(K key , V value) //将对象存入到集合中国,关联键值。key重复则覆盖原值
3)remove(Object key)
4)Object get(Object key) //根据键值获取对应的值。
5)Set<K> //返回所有key
6)Collection<V> values() //返回包含所有值得Collection集合
7)Set<Map.Entry<K , V>> //键值匹配的Set集合。
public class TestHashMapApply {
public static void main(String[] args) {
// 有个问题,在调用的时候并不清楚国家对应的下标???
// 访问所有键
Set<String> keys = Contry.countries.keySet();
// 访问所有值
Collection<String> values = Contry.countries.values();
// 访问所有键+值
Set<Map.Entry<String,String>> va = Contry.countries.entrySet();
for (Map.Entry<String,String> entry : va) {
// System.out.println("<" + entry.getKey() + "\t" + entry.getValue() + ">");
System.out.println(entry);
}
}
}
class Contry {
/**
* 利用国家的国际通用字符作为键值
*/
public static final Map<String , String> countries = new HashMap<String , String>();
static {
countries.put("CN" , "中国");
countries.put("US" , "美国");
countries.put("KR" , "韩国");
countries.put("IT" , "意大利");
countries.put("JP" , "日本");
}
}
实现类:
一、HashMap:提供null值和null键
初始容量、加载因子???? 影响哈希表性能。
DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR
1.1 Class:HashMap
a)HashMap:线程不安全,运行效率块;允许put(null , null);
b)Hashtable:线程安全,运行慢;不允许put(null , null);
1.2 Interface:SortedMap
四、TreeMap
实现了SortedMap接口,可以对key自动排序。
二、hashTable类
三、Properties 实现类
问题:内部的<key , value>存储的是什么内容呢??
Hashtable的子类,要求key和value都是String。通常用于配置文件的读取。