Map
|--HashMap
底层数据结构是哈希表。线程不安全。
如何保证元素唯一呢?通过hashCode方法和equals方法。
|--Hashtable
底层数据结构是哈希表。
线程安全的。效率低。
|--Properties
它和IO有关联。是集合中可以和IO进行通信的东西。
|--TreeMap
底层数据结构是二叉树,线程不安全。
如何保证元素的唯一呢?
通过集合具备比较性或元素具备比较性中的比较方法返回的是不是0来确定是否是重复元素。
同时,通过比较性可以对其进行排序。
掌握的功能:
添加元素
put(Object key,Object value)
遍历元素
方式1思路:
A:先获取所有键的Set集合。keySet
B:遍历Set集合,获取每个键值。Iterator
C:根据键获取值。get
代码体现:
HashMap<k,v> hm = new HashMap<k,v>;
Set<k> set = hm.keySet();
Iterator<k> it = set.iterator();
while(it.hasNext())
{
k k_value = it.next();
v v_value = hm.get(k_value);
//操作键和值
}
方式2思路:
A:获取键值对应关系的Set集合。entrySet
B:遍历这个Set集合。Iterator
C:根据键值对的对象,获取键和值。
代码体现:
HashMap<k,v> hm = new HashMap<k,v>;
Set<Map.Entry<K,V>> set = hm.keySet();
Iterator<Map.Entry<K,V>> it = set.iterator();
while(it.hasNext())
{
Map.Entry<K,V> me = it.next();
k k_value = me.getKey();
v v_value = me.getValue();
//操作键和值
}
案例:
用自定义对象作为键。如何保证键的唯一性?
用自定义对象作为值。
czbk的例子。
HashMap<String,HashMap<String,String>> czbk存入数据,并遍历数据。