java集合之Map

来源:互联网 发布:产品网络推广方案 编辑:程序博客网 时间:2024/06/05 02:00

集合都实现了toString方法。
双列集合:接口Map --- 键值对

HashMap集合: ---- 添加元素时使用put
1.实现了Map接口
2.基于Hash表的
3.可以使用null值作为键和值
4.取出顺序不一定
5.键具有唯一性,重复时会覆盖前者,
  值可以重复
6.实现不是同步的

Map双列集合遍历的2种方式:
方式1:使用entrySet()方法将其所有的映射关系
组织为一个set集合,然后遍历set集合,依次取出各个键值
对,然后再调用键值对Map.Entry类型的获取键和值的方法拿
到各个键和值,如下:

//将map集合组织成set集合
Set<Map.Entry> set = map.entrySet();
//循环遍历set集合
for(Map.Entry entry : set){
   System.out.println(set);//取出各个映射关系
   System.out.println(entry.getKey());//取出映射关系的键
   System.out.println(entry.getValue());//取出映射关系的值
}
-----------------------------------------------------------------
方式二:使用keySet方法将所有的键组织成一个set集合,然后循环
遍历该set集合,依次取出各个键,然后使用get(键)方法
获取该键对应的值,如下:

//将所有的键组织为一个set集合
Set keys = map.keySet();
//循环遍历该set集合
for(Object obj : keys){
  System.out.println(obj);//取出各个键
  System.out.println(map.get(obj));//取出键对应的值
}
----------------------------------------------------------------------------
map.values()用来获取所有的值,因为只有可能重复,所以返回Collection类型
----------------------------------------------------------------------------
练习题:判断数组中每个数出现的次数{1,2,3,1,4,6,2,3,5,6,7,4,1,6,5}


TreeMap集合:
1.实现了Map接口
2.存储结构为二叉树
3.按键排序,排序规则:使用自然排序或者比较器,默认无参构造使用自然排序,使用比较器时要用带参数的构造方法。
4.key不可重复,null不可以出现,因为不能排序。
5.添加时键值要为同一类型,并可进行比较

--------------------------------------------------------------------------------------
有关集合的两个面试题:
---------------------------------------
1.ArrayList和Vector什么关系?
相同点:
1.函数名和方法实现基本一致
2.都实现了List接口
不同点:
1.ArrayList是线程同步的,而Vector是线程异步的
2.ArrayList当容量满时,以1.5倍增长,而Vector则是以2倍增长
-----------------------------------------
2.HashMap和HashTable的区别?
相同:
函数名和方法实现基本一致
不同:
HashMap是线程同步的,而HashTable是线程异步的
HashTable:key和value均不可以为空。


0 0
原创粉丝点击