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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 15891252910 中级黑马   /  2016-8-29 19:46  /  642 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1:Map(掌握)
        (1)将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
        (2)Map和Collection的区别?
                A:Map 存储的是键值对形式的元素,键唯一,值可以重复。夫妻对
                B:Collection 存储的是单独出现的元素,子接口Set元素唯一,子接口List元素可重复。光棍
        (3)Map接口功能概述(自己补齐)
                A:添加功能
                B:删除功能
                C:判断功能
                D:获取功能
                E:长度功能
        (4)Map集合的遍历
                A:键找值
                        a:获取所有键的集合
                        b:遍历键的集合,得到每一个键
                        c:根据键到集合中去找值
               
                B:键值对对象找键和值
                        a:获取所有的键值对对象的集合
                        b:遍历键值对对象的集合,获取每一个键值对对象
                        c:根据键值对对象去获取键和值
                       
                代码体现:
                        Map<String,String> hm = new HashMap<String,String>();
                       
                        hm.put("it002","hello");
                        hm.put("it003","world");
                        hm.put("it001","java");
                       
                        //方式1 键找值
                        Set<String> set = hm.keySet();
                        for(String key : set) {
                                String value = hm.get(key);
                                System.out.println(key+"---"+value);
                        }
                       
                        //方式2 键值对对象找键和值
                        Set<Map.Entry<String,String>> set2 = hm.entrySet();
                        for(Map.Entry<String,String> me : set2) {
                                String key = me.getKey();
                                String value = me.getValue();
                                System.out.println(key+"---"+value);
                        }
        (5)HashMap集合的练习
                A:HashMap<String,String>
                B:HashMap<Integer,String>
                C:HashMap<String,Student>
                D:HashMap<Student,String>
        (6)TreeMap集合的练习               
                A:TreeMap<String,String>
                B:TreeMap<Student,String>
        (7)案例
                A:统计一个字符串中每个字符出现的次数
                B:集合的嵌套遍历
                        a:HashMap嵌套HashMap
                        b:HashMap嵌套ArrayList
                        c:ArrayList嵌套HashMap
                        d:多层嵌套
                       
2:Collections(理解)       
        (1)是针对集合进行操作的工具类
        (2)面试题:Collection和Collections的区别
                A:Collection 是单列集合的顶层接口,有两个子接口List和Set
                B:Collections 是针对集合进行操作的工具类,可以对集合进行排序和查找等
        (3)常见的几个小方法:
                A:public static <T> void sort(List<T> list)
                B:public static <T> int binarySearch(List<?> list,T key)
                C:public static <T> T max(Collection<?> coll)
                D:public static void reverse(List<?> list)
                E:public static void shuffle(List<?> list)
        (4)案例
                A:ArrayList集合存储自定义对象的排序
                B:模拟斗地主洗牌和发牌
                C:模拟斗地主洗牌和发牌并对牌进行排序

3:       
          Collection
                          List(存取有序,有索引,可以重复)
                                 ArrayList
                                         底层是数组实现的,线程不安全,查找和修改快,增和删比较慢
                                  LinkedList
                                          底层是链表实现的,线程不安全,增和删比较快,查找和修改比较慢
                                  Vector
                                          底层是数组实现的,线程安全的,无论增删改查都慢
                                  如果查找和修改多,用ArrayList
                                  如果增和删多,用LinkedList
                                  如果都多,用ArrayList
                          Set(存取无序,无索引,不可以重复)
                                  HashSet
                                          底层是哈希算法实现
                                         LinkedHashSet
                                                  底层是链表实现,但是也是可以保证元素唯一,和HashSet原理一样
                                  TreeSet
                                          底层是二叉树算法实现
                                  一般在开发的时候不需要对存储的元素排序,所以在开发的时候大多用HashSet,HashSet的效率比较高
                                  TreeSet在面试的时候比较多,问你有几种排序方式,和几种排序方式的区别
          Map
                          HashMap
                                  底层是哈希算法,针对键
                                  LinkedHashMap
                                          底层是链表,针对键
                          TreeMap
                                  底层是二叉树算法,针对键
                          开发中用HashMap比较多
         
4:        /**
         * @param args
         * 面试题
         * HashMap和Hashtable的区别
         * 共同点:
         * 底层都是哈希算法,都是双列集合
         * 区别:
         * 1,HashMap是线程不安全的,效率高,JDK1.2版本
         *   Hashtable是线程安全的,效率低,JDK1.0版本的
         * 2,HashMap可以存储null键和null值
         *   Hashtable不可以存储null键和null值
         */

2 个回复

倒序浏览
很有用!赞一个!
回复 使用道具 举报
道友是有心人!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马