----------------------
ASP.Net+Android+IO开发S、
.Net培训、期待与您交流! ----------------------
一 Map
|--Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。
|--HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。
|--TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。
和Set很像。Set底层就是使用了Map集合。
二 map集合的两种取出方式:
1,Set<k> keySet:将map中所有的键存入到Set集合。因为set具备迭代器。
所有可以迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。
Map集合的取出原理:将map集合转成set集合。在通过迭代器取出。
2,Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到了set集合中,
而这个关系的数据类型就是:Map.Entry
Entry其实就是Map中的一个static内部接口。
为什么要定义在内部呢?
因为只有有了Map集合,有了键值对,才会有键值的映射关系。
关系属于Map集合中的一个内部事物。
而且该事物在直接访问Map集合中的元素。
*/
class MapDemo{
public static void main(String[] args){
Map<String, Integer> map = new HashMap<String, Integer>();
// 创建一个Map集合。
map.put("王五", 3);
//取出Map的所有键,并存入Set集合。
//Set<String> coll = map.keySet();
//取出Map集合的所有映射关系,并存入Set集合。
Set<Map.Entry<String, Integer>> coll = map.entrySet();
//Collection<String> coll = map.keySet();
Iterator<Map.Entry<String, Integer>> it = coll.iterator();
while(it.hasNext()){
// 利用映射关系的Set获取key值。
String str = it.next().getKey();
sop(str + map.get(str));
}
}
三 Map 与 Collection集合的区别
1 Map----------添加元素-----------put(),当所添加的key已存在时返回的是所对应的value.
2 Collection ---------添加元素-------------add();return Boolean。
四 疑问
1 Map集合的取出顺序是怎样的??
---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------