A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fendoudemayi299 中级黑马   /  2015-11-24 21:43  /  751 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Map<键,值>  概述/特点
Map的值也是无序的和Set()相同 且键不能重复 键重复回把前面的那个同键的值替换掉
A:Map接口概述
         查看API可以知道:
                 将键映射到值的对象
                 一个映射不能包含重复的键
                 每个键最多只能映射到一个值
B:Map接口和Collection接口的不同
         Map是双列的,Collection是单列的
         Map的键唯一,Collection的子体系Set是唯一的
         Map集合的数据结构值针对键有效,跟值无关;Collection集合的数据结构是针对元素有效

Map集合的功能:
Map是集合 所以只能创建子类对象
Map集合的功能概述
* A:Map集合的功能概述
        * a:添加功能
                * V put(K key,V value):添加元素。
                        * 如果键是第一次存储,就直接存储元素,返回null
                        * 如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值
        * b:删除功能
                * void clear():移除所有的键值对元素
                * V remove(Object key):根据键删除键值对元素,并把值返回
        * c:判断功能
                * boolean containsKey(Object key):判断集合是否包含指定的键
                * boolean containsValue(Object value):判断集合是否包含指定的值
                * boolean isEmpty():判断集合是否为空
        * d:获取功能
                * Set<Map.Entry<K,V>> entrySet(): 将Map中的所有键_值封装到一个容器中并用Set接收
                * V get(Object key):根据键获取值
                * Set<K> keySet():获取集合中所有键的集合 用Set接口接收
                * Collection<V> values():获取集合中所有值的集合
        * e:长度功能
                * int size():返回集合中的键值对的个数
Map集合的迭代
通过查看API Map集合没有iterator方法 所以不能迭代
Iterator循环
Set<String> keySet = map.keySet();获取所有键的集合
     获取迭代器
判断集合中是否有值
获取每一个键
根据键获取值get()

增强for循环
for(String key : map.keySet()) {                        //map.keySet()是所有键的集合
                        System.out.println(key + "=" + map.get(key));
                }
Map的第二种迭代
Map.Entry:解释:Entry是Map的内部接口

hashMap要是存储对象要重写equels()和hashCod()方法
toString()方法也重写;
不重写不会去重复(键相同不会去掉)
LinkedHAshMap()特点:怎么存怎么取;

Treemap 根据要求排序(对键的排序)
要不实现对象的类或加一个比较器和昨天学的TerrSet()相同

Char的包装类Character

HashMap嵌套  

HashMap与Hashtable区别:
HashMap等于替代掉了hashtable
面试题:
共同点:底层都是哈希算法,都是双列集合
区别:
1,HashMap是线程不安全的,效率高,JDK1.2版本的
  Hashtable是线程安全的,效率低,JDK1.0版本
2,hashMap可以存储null键和null值
  Hashtable不可以存储


Collections是工具类 方法都是静态的 (当所有方法都是静态的 构造方法私有)
        Collections中的常见方法
                  public static <T> void sort(List<T> list) //对集合排序
                public static <T> int binarySearch(List<?> list,T key)//二分查找法
                public static <T> T max(Collection<?> coll)//获取最大值
                public static void reverse(List<?> list)//翻转集合
                public static void shuffle(List<?> list)//随机置换(洗牌)





泛型固定下边界  |
? Super E                |
|collections中的Demo2_Gwnric中
泛型固定上边界        |
? extends E        |

2 个回复

倒序浏览
hao lihai
回复 使用道具 举报
我可以给大神一个赞吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马