黑马程序员技术交流社区

标题: [系统学ava]类集第四天 [打印本页]

作者: 友人A    时间: 2016-3-14 11:35
标题: [系统学ava]类集第四天
第四天的学习:
        Map接口:将键映射到值的对象,一个映射只能拥有一个键,每个键智能映射到一个值;
        Map接口与Collection接口的区别:
                Map是双列的,Collection是单列的;
                Map的键是唯一的,Collection的子体系Set是唯一的;(单列集合底层依赖的是双列集合)
                Map集合的数组结构值针对键有效,跟值无关;
                Collection集合的数据结构是针对元素有效;       
                       
        Map的功能方法:
                V put(K key,V value);        //添加元素
               
                void clear();                        //清除所有元素
                V remove(Object obj);        //根据键值删除对应元素,并返回值
               
                boolean containskey(Object obj); //判断集合是否包含指定键
                booolean containsValue(Object obj);//判断集合是否包含指定值
                boolean isEmpty();//判断集合是否为空
               
                Set<Map.Entry<K,V>> entrySet(); //获取键值对象集合(Map.Entry是内部类)
                V get(Object obj);//根据键获取值
                Set<K> keySet();//获取集合中所有键的集合
                Collection<V> values();//获取集合中所有值的集合
               
                int size();//返回集合中的键值对的个数
                       
        Map集合的遍历(一):
                先获取Map集合中所有的键的集合;
                再遍历键的集合获取Map集合中对用的值;
                最后打印;(迭代器,增强for循环).
        Map集合的遍历(二):               
                先获取Map集合中的键值对象;       
                分别获取键值对象的键和值;
                最后打印.
        LinkedHashMap:(跟LinkedHashSet类似)               
                保证怎么存就怎么取.       
                       
        HashMap和Hashtable的区别:
                Hashtable是JDK1.0版本里出现的,是线程安全的,但是效率低;
                HashMap是JDK1.2版本出现的,是线程不安全的,但是效率高.
                Hashtable不可以存储null键和null值,但是HashMap可以
                       
        Coolections工具类的方法:
                ...(不说了)
                静态类构造方法要定义成私有的比较好.
        ? extends E 和 ?super E
                ? extends E:(addAll方法),本来是向集合中存储父类对象,但是实际可以存入子类对象(固定上边界);
                ?super E:(比较器),本来是想集合中取出父类对象进行操作,但是实际可以取出子类对象进行操作(固定下边界).




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2